{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "view-in-github"
},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "cB_tUPnEz5k0"
},
"source": [
"# Nomenclature\n",
"\n",
"Capital letters are Matricies: $A$\n",
"\n",
"Vectors have arrows above: $\\vec{x}$\n",
"\n",
"Scalars are lower case: $\\alpha$\n",
"\n",
"Superscripts generally denote iteration number: $\\vec{x}^k$."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "BtUbVDq_jqCq"
},
"source": [
"# Conjugate gradient (CG)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-_q-4IQil6DT"
},
"source": [
"Conjugate gradient method is a standard tool for solving symmetric positive definite systems.\n",
"\n",
"Consider a quadratic surface, defined by:\n",
"\n",
"$f(\\vec{x}^k) = \\frac{1}{2} \\vec{x}^T A \\vec{x} -\\vec{b}^T \\vec{x}$.\n",
"\n",
"This surface has a minimum at:\n",
"\n",
"\\begin{align}\n",
"\\frac{d f}{ d x} = \\vec{0} &= A \\vec{x}-\\vec{b} \\\\\n",
"\\vec{0} &= \\vec{r}\n",
"\\end{align}\n",
"\n",
"Where $\\vec{r}=A \\vec{x}-\\vec{b} $ is the residual. Minimizing $f$ is equivilant to solving $A\\vec{x} = \\vec{b}$ which is equiviliant to finding $\\vec{r}=\\vec{0}$.\n",
"\n",
"For a general guess $\\vec{x}^k$,\n",
"\n",
"\\begin{align}\n",
"A \\vec{x}^k-\\vec{b} =\\vec{r}^k \\ne 0 \\\\\n",
"\\end{align}\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ITxJiph6xGVt"
},
"source": [
"### The Hessian\n",
"Note: The matrix $A$ in this case is the *hessian*, $H$, of $f$, which is the matrix made by the mixed second derivatives:\n",
"\n",
"$H = \\begin{bmatrix}\n",
"\\frac{\\partial^2 f}{\\partial x_1^2} & \\frac{\\partial^2 f}{\\partial x_1 \\partial x_2} & \\cdots & \\frac{\\partial^2 f}{\\partial x_1 \\partial x_n} \\\\\n",
"\\frac{\\partial^2 f}{\\partial x_2 \\partial x_1} & \\frac{\\partial^2 f}{\\partial x_2^2} & \\cdots & \\frac{\\partial^2 f}{\\partial x_2 \\partial x_n} \\\\\n",
"\\vdots & \\vdots & \\ddots & \\vdots \\\\\n",
"\\frac{\\partial^2 f}{\\partial x_n \\partial x_1} & \\frac{\\partial^2 f}{\\partial x_n \\partial x_2} & \\cdots & \\frac{\\partial^2 f}{\\partial x_n^2}\n",
"\\end{bmatrix}$\n",
"\n",
"From the rule of mixed second derivatives, we see that the Hessian is symmetric.\n",
"\n",
"The Hessian is positive definite if $\\vec{x}^T H \\vec{x} > 0$ for all $\\vec{x}$. In this case the quadratic surface $f$ is convex (opening upwards). For a 1D case, this means you have a positive second derivative.\n",
"\n",
"> For comparison, the other common function with second derivatives is the Laplacian, which is a scalar sum of the diagonal elements of H: $\\Delta f = \\nabla^2 f = \\frac{\\partial^2 f}{\\partial x_1^2} + \\frac{\\partial^2 f}{\\partial x_2^2} + \\frac{\\partial^2 f}{\\partial x_3^2} ... $\n",
"\n",
"- Since $A$ is symmetric, you could form a surface $f$ which has an *extrenum* at the solution of the system. These problems are generally called *saddle point problem*.\n",
"\n",
"- Since $A$ is symmetric positive definite, the surface is convex quadratic (paraboloid) which has a minimum at the solution of the linear system.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "V0q38r4urSEa"
},
"source": [
"##The algorithm"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "VCUyQEzyrUSQ"
},
"source": [
"Starting at $\\vec{x}^k$, we will choose step direction $\\vec{s}^k$, and step length $\\alpha^k$ to reach our next guess $\\vec{x}^{k+1}$:\n",
"\n",
"$\\vec{x}^{k+1} = \\vec{x}^k + \\alpha^k \\vec{s}^k$\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Im-y9qMkuVMK"
},
"source": [
"### Choose the step length"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "3QkBteAPuWWK"
},
"source": [
"An obvious choice for $\\alpha^k$ is whatever minimizes $f(\\vec{x}^{k+1})$!\n",
"\n",
"$f(\\vec{x}+\\alpha^k \\vec{s}^k) = \\frac{1}{2} [\\vec{x}+\\alpha^k \\vec{s}^k]^T A [\\vec{x}+\\alpha^k \\vec{s}^k] -\\vec{b}^T [\\vec{x}+\\alpha^k \\vec{s}^k]$.\n",
"\n",
"The minimum is found when:\n",
"\n",
"\\begin{align}\n",
"\\frac{\\partial f}{\\partial \\alpha^k} = 0 &= {\\vec{s}^k}^T A [\\vec{x}+\\alpha^k \\vec{s}^k] -\\vec{b}^T \\vec{s}^k\\\\\n",
"&= {\\vec{s}^k}^T A \\vec{x}^k+ {\\vec{s}^k}^T A \\alpha^k \\vec{s}^k -{\\vec{s}^k}^T \\vec{b} \\\\\n",
"&= {\\vec{s}^k}^T [A \\vec{x}^k-\\vec{b}] + \\alpha^k {\\vec{s}^k}^T A \\vec{s}^k \\\\\n",
"\\alpha_k &= \\frac{{\\vec{s}^k}^T \\vec{r}^k}{{\\vec{s}^k}^T A \\vec{s}^k}\n",
"\\end{align}\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "oGRlNnP47thu"
},
"source": [
"So given a step direction $\\vec{s}^k$ we can take an optimal step length $\\alpha_k$ which is determined by the current residual $\\vec{r}^k$."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "l0TZ-kUu8QQt"
},
"source": [
"### Choose the step direction: Steepest descent"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "USReYwOm3G9C"
},
"source": [
"The magic of these methods comes from the choice of step direction."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "QFvgdIo88Ti-"
},
"source": [
"How do we go about choosing $\\vec{s}^k$?\n",
"\n",
"The intuitive answer is the negative gradient of $f(x^k)$, which is simply,\n",
"\n",
"$s^k = -\\nabla f = -\\frac{d f}{d\\vec{x}} = -\\vec{r}^k$\n",
"\n",
"The optimal step size is therefore,\n",
"\n",
"$\\alpha_k=\\frac{{\\vec{r}^k}^T \\vec{r}^k}{{\\vec{r}^k}^T A \\vec{r}^k}$\n",
"\n",
"Now we take the step to form $\\vec{x}^{k+1}$ and repeat the process until your choice of tolerance on the residual (or $\\vec{x}^k$!) is met."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "eUidioPtsDK-"
},
"source": [
"Let's code it!"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"id": "uB50fcjHAWey"
},
"outputs": [],
"source": [
"# Copy the surface plotter from the last lecture:\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"def plot_surface(A, b, x0, x_true):\n",
" # Utility function to autoscale the plot limits to include x0 and x_true\n",
" def calculate_box_limits(point1, point2, padding=.5):\n",
" # Extract coordinates\n",
" x1, y1 = point1\n",
" x2, y2 = point2\n",
" # Calculate min and max coordinates with padding\n",
" min_x = min(x1, x2) - padding\n",
" max_x = max(x1, x2) + padding\n",
" min_y = min(y1, y2) - padding\n",
" max_y = max(y1, y2) + padding\n",
" return (min_x, max_x, min_y, max_y)\n",
"\n",
" xb, xe, yb, ye = calculate_box_limits(x0, x_true)\n",
" # Plot the linear system\n",
" x = np.linspace(xb, xe, 100)\n",
" y = np.linspace(yb, ye, 100)\n",
" X, Y = np.meshgrid(x, y)\n",
" V = np.stack((X,Y),-1)\n",
" Z = 0.5 * (A[0, 0] * X**2 + A[1, 1] * Y**2 + 2 * A[0, 1] * X * Y) - (b[0] * X + b[1] * Y)\n",
" fig, ax = plt.subplots()\n",
"\n",
" CS = ax.contour(X, Y, Z, levels = 15)\n",
" ax.set_xlim([xb, xe]) # Set x-axis limits\n",
" ax.set_ylim([yb, ye]) # Set y-axis limits\n",
" ax.clabel(CS, inline=True, fontsize=10)\n",
"\n",
" return fig"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"id": "OMZtSA3s9ofi"
},
"outputs": [],
"source": [
"# prompt: write a function to solve a linear system using the method of steepest descent\n",
"\n",
"import numpy as np\n",
"def steepest_descent(A, b, x0, tol=1e-6, max_iter=100):\n",
" \"\"\"\n",
" Solves a linear system Ax = b using the method of steepest descent.\n",
"\n",
"\n",
" Args:\n",
" A: The coefficient matrix (must be symmetric positive definite).\n",
" b: The right-hand side vector.\n",
" x0: The initial guess for the solution.\n",
" tol: The tolerance for the residual.\n",
" max_iter: The maximum number of iterations.\n",
"\n",
" Returns:\n",
" x: The approximate solution.\n",
" residuals: A list of the residuals at each iteration.\n",
" \"\"\"\n",
" x = x0\n",
" iterations = [x]\n",
" for i in range(max_iter):\n",
" r = A @ x - b\n",
" if np.linalg.norm(r) < tol:\n",
" break\n",
" alpha = np.dot(r, r) / np.dot(r, A @ r)\n",
" x = x - alpha * r\n",
" print('Iteration ', i, ' : ',x)\n",
" iterations.append(np.copy(x))\n",
" return x, iterations\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 621
},
"id": "_FkD61S_-DcI",
"outputId": "341f2714-fecf-425a-db7b-4e0769ccb8ff"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The true answer is [0.81818182 1.72727273]\n",
"Iteration 0 : [1.1380597 1.36567164]\n",
"Iteration 1 : [0.78590538 1.65913358]\n",
"Iteration 2 : [0.83080067 1.71300793]\n",
"Iteration 3 : [0.81690855 1.72458471]\n",
"Iteration 4 : [0.81867962 1.72671 ]\n",
"Iteration 5 : [0.81813159 1.72716669]\n",
"Iteration 6 : [0.81820146 1.72725053]\n",
"Iteration 7 : [0.81817984 1.72726854]\n",
"Iteration 8 : [0.81818259 1.72727185]\n",
"Iteration 9 : [0.81818174 1.72727256]\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAAGdCAYAAADaPpOnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzddViV9//H8edJurvBFrG7u7tjdmx26+Y2Y5vOzZoxa3Z3zW7sRFFRUUEQkJTuOuf3x1G/22+24M053I/r4nKDc+B1bm7O/b4/KVGr1WpEIpFIJBKJtIRU6AAikUgkEolEH0MsXkQikUgkEmkVsXgRiUQikUikVcTiRSQSiUQikVYRixeRSCQSiURaRSxeRCKRSCQSaRWxeBGJRCKRSKRVxOJFJBKJRCKRVpELHSCvqVQqwsPDMTExQSKRCB1HJBKJRCLRB1Cr1SQnJ+Po6IhU+u62FZ0rXsLDw3FxcRE6hkgkEolEok8QGhqKs7PzOx+jc8WLiYkJAEFBQVhaWgqcJv8dPuLL8pVnqFrFg+lTO/7n69nZ2Zw4cYJmzZqhUCgESFjwvO2YzJ+2l0unH1KjQUkmz+oiYMIvSzxH/k08Hv8mHo9/E4/Hf+XVMUlKSsLFxeX1dfxddK54edVVZGJigqmpqcBp8l94RCpyuT6enh5vfL3Z2dkYGhpiamoq/qG99KZj8iwwmuvngpDL9Bg4qlWhOHdeEc+RfxOPx7+Jx+PfxOPxX3l9TD5kyIc4YFfLBQXFAFC0iI3ASbTbnk2XUavV1GpUmiIl7IWOIxKJRKJ3EIsXLfc8PB4AF2fd7yLLL4nxqZw9cheALn1rC5xGJBKJRO8jFi9aLCUlg8TEdAAcHS0ETqO9ju3zITsrh2KlHShdXhzsLRKJRAWdWLxosfDwBAAsLY0wMFAKG0ZL5eaqOLTzBgDtetQQp9eLRCKRFhCLFy0WGZUIgL2dmcBJtNed60+JiUzExMyABi28hI4jEolEog8gFi9aLC4uBQArK2OBk2ivMy/HutRr5oVST5w5IBKJRNpALF60WGxcKgCWFmLx8imyMnO4fOYhAA1blRM4jUgkEok+lFi8aLH4ly0vllZGAifRTj5XAkhLzcTG3gxPcaCuSCQSaQ2dW6SuMElOyQDA1NRA4CTa6cbFJwDUaez53n00RKKCLic7l/joJOJikkiOTyU1KZ3U5AzSktNJSUwnKyOb7KwccrJzyM7MITs7F9RqJFIJEqkUqUSCRCpBoSdH30CJ3ssPhZ6MwKDnWMruYW5tiom5IcZmhphZGaNQipcQkTDEM0+LpaVlAWBkqCdwEu2jVqu5dSUQgCq1iwucRiR6v8z0LCKevSDi2QsiX/4bERLLi4gE4qKSSHrZEptfvDc//M/nTC2MsLQ3w9LWFEtbU2wcLbBzscLOxRI7FytsHC2QK2T5mktUOInFixZLTcsEwNBQnCb9seKi0omNTkZPX0HZym5CxxGJ/iXmeTyP74bw9H4Ywf7hBD+MIOLZC9Rq9TufJ5NLsbAxxdTSGCNTfYxMDDAy0cfQ1AB9QyVyhRyFUo5CKUOukCORSlCr1KhVKlQqNSqVmpysHDLTs8hIzyIzPYu0lAyCn4ZiqDQmJTGN5ATNhypXRVJ8KknxqQQ/DH9jHqlUgq2zJc5FbXEqYodLMTtcitvhXtIRU0uxu1v06cTiRYulpWpaXsTi5eOFBiYDUK6KuzjLSCQotVrN88Bo7l0LwO9qIH7XA4kOi3vjY43NDHBws379Ye9mjY2TBZa2Zljaabp08roLNDs7myNHjtCqVavX+9aoVCqSE9KIi0oiLjqRuMhEYqMSiQlPIDoslsiQWKLC4sjOzCEyRPP/N8/+u+XGxtGCol7Orz+KlXXBRlxsU/SBxOJFi+Xk5gIgl4vNsh8rKkzTxF6usruwQUSFUmpSOrfO+3Pj9H1uej8kPjrpX1+XyqS4l3KkaBknPEo74l7KEffSjljYFIwNQ6VSKWaWxphZGuNR2vGNj1GpVCTEJPM8KIawwCjCAqMJfRJJaEAUkSGxxITHExMez9UT914/x8rejJIV3ShZ0Z1SFd0pUcEVfbFbXPQGYvGixVQqTROyTBxs+lHUajVRoZpp5qXKibOMRF9GVGgsFw77cv2UHw9uPCU3R/X6a0p9BaUqulOmelHKVi9KqcoeGBhp90VbKpViaWeGpZ0ZZWsU+9fXUpPSCXr4nEC/sNcfwY8iiI1M5PLRu1w+qll/SSaXUqysC2WqFaVsjWKUqVoEEwuxu0kkFi9aLTdX8+YnlYpL2n+MF1FJpCZnI5VJKO755rtGkSgvpCSm4b3fh9O7r+N/K/hfX3MpZkfVRp5UbVwGz6pFClX3pZGpAV7Vi+FV/X9FTUZ6FgF3Q/C//YxHt4LxvxXMi4gEHt1+xqPbz9i78gwA7qUdqVSvFFUalKZM9aKF6riJ/kcsXrTYq7F74n48HyfAPwIA96K26It7QonyweM7IRxY7c3FI75kZWQDmr/TsjWKUatVeao1LoODm7XAKQsWfQPlfwqaqLA47l8LxO9aIH7XAggNiCL4YTjBD8PZu/IMegZKytcqTtVGnlRvWhYbJ3HMTGEhFi9aTCHXdBdl5+QKnES7hAW9AMC1iI3ASUS6JDdXxbWT99j311n8rgW+/rx7KQeada9B/faVsRT3Ifsods6W2Dlb0qhzVQASXiRz59JjfM754+P9gLioJK6fvs/10/dZ+sMuino5U6NZWWo0K0tRL2fxxk6HicWLFlMoNL++7OwcgZNol5CXxYuzh3jnK/p8WRnZHN9+hX2rzhIRrDm3ZHIpDdpXpu2AepSo4CZeRPOIubUJ9dtXpn77yqjVaoIfhnPj7IOX44iCXo+f2bLgKDaOFtRuVZ46bSpSurK7uBCljhGLFy2mVGpmGWVniS0vHyPs5QXGxV0sXkSfTq1Wc3bvTdb++jexkQkAGJsb0rp3bdr0r4e1g7mg+XSdRCLBw9MJD08nuo1oSkJsMjdOP+DayXv4eD8kJjye/au92b/aGyt7M+q1rUTDTlUoVtZFLCZ1gFi8aDF9fc14jfSMLIGTaJeo8AQAHFwshQ0i0lqP74SwYupuHvoEAZo1S7oMb0yz7jXEqb0CMbcyoWm36jTtVp2sjGxunffnwsHbXD15j9jIRPatOsu+VWdxK+lAk27VadSxitiNp8XE4kWLGZto3iSTkzMFTqI9srJySE5MB8DKxkTgNCJtkxyfyppZBzix/SpqtRp9QyU9Rjen45CGKPXFWS8FhVJf8XrsS1ZmNj7eD/Hed5OrJ/149iiCNb/sZ92sA1RuUJqm3WpQo3lZcZ8mLSP+trSYqYlmQ8bk5HSBk2iP+BeaxemkMgkmZuKGlqIPd+mIL0u/30l8jGZ15kadqjLg+3Zi91ABp9RTULN5OWo2L0dKYhrnD97m1M5rPPQJ4saZB9w48wAzK2OadqtOi161cCpiK3Rk0QcQixctZmysD0BScobASbRH3AvNhcfIRCH2e4s+SFZGNium7eHolksAuBS3Z8zcnpSpWkTgZKKPZWxmSKvetWnVuzZhAVGc2nWNk7uuEReVxO7lp9m9/DSVG5Smbf96VBV3my/Q8vU3M3v2bKpWrYqJiQm2trZ06NCBR48evfd5u3btolSpUujr61O2bFmOHDmSnzG1luXLlSbj83k3WV2SmqIp9PT0xS0VRO8XGfKCCR3+4OiWS0gkErqPbMqfxyeLhYsOcC5mR/8p7dh4/WemrR1C1UaeSCQSfLwfMqP/Sr5pMIsjmy6SkS6OKSyI8rV4OXfuHCNGjODq1aucPHmS7OxsmjVrRmpq6lufc/nyZXr27MmgQYO4ffs2HTp0oEOHDvj5+eVnVK1kba0ZsxHzsjVB9H4Z6ZoFw+RK8Y5K9G53Lz9hVMu5BNwLxdTCiF82D6P/lHbiiq46RiaXUbN5OX7eNIw1l6bR6ZtGGJkaEBYYzZLvdtCv6jQ2zjlE3P/bf0okrHztNjp27Ni//n/9+vXY2tri4+NDvXr13vicRYsW0aJFCyZNmgTAL7/8wsmTJ/nzzz9ZsWJFfsbVOtbWxgC8eCG2vHyoV3dRCoXY8iJ6u0dXw1m19Qy5OSpKVnTj+5UDsXUSZ6fpOgc3a4ZM68hX41tyYvtV9q8+S1RoHNsWHWf3itM06VKdjkMbCB1TxBce85KYmAiApeXb3wSuXLnC+PHj//W55s2bs3///jc+PjMzk8zM/822SUrSVMfZ2dlkZ2d/ZuKCzcJcM+A0KjqRrKysN47heHUMdP1YfKj0VM25IlNIxGPykniO/Nvx7Vc4u/EBAHXbVGDMvJ4o9RWF9vgUxvNDoSejdb/atOhdk2sn7rF/1Tn8bwVzdMslTuy4QvHq9pQrVRnnInZCRy0Q8uoc+Zjnf7HiRaVSMXbsWGrXro2Xl9dbHxcZGYmd3b9PCDs7OyIjI9/4+NmzZ/PTTz/95/MbdxympI4vQpabq0YigczMHHbv/hsjo7c3Z588efILJiu4HtzXLFCHWjwm/594PCDgZiSn12m6qL0auODZwopTZ8TjAoX7/GgwuBglA6zwORpE2MM4/C+FM7LJHErUdKBKyyIYW+oLHbFA+NxzJC0t7YMf+8WKlxEjRuDn58fFixfz9PtOmTLlXy01SUlJuLi4IDW0p1WrZnn6swqi3fsiiIxMpGSpSpQr6/Kfr2dnZ3Py5EmaNm2KQiH21StzfDn39zNUKrV4TF4SzxGN66fus2rjGdRqKF3biRl/jUCpFDfuFM+P/xk0Gu5de8Ly6TsI89cUMYE3omnVpzZdhjfGzMpY6IiCyKtz5FXPyYf4IsXLyJEjOXToEOfPn8fZ2fmdj7W3tycqKupfn4uKisLe3v6Nj9fT00NP778rWgY8e1Eo/tBcnC2JjEwkIjKJypXe/noVCkWhOB7vo1BqjoFaLR6T/68wHw+/64H8NnwDuTkq6neoRMkmFiiVykJ7PN6kMJ8f/1S2enHajK6Eu00pNs8/ht/VAA6sOceJ7VfpPLQRnYc2LrSrLH/uOfIxz83XKRdqtZqRI0eyb98+zpw5g4eHx3ufU7NmTU6fPv2vz508eZKaNWt+1M9+9DSKXJXqo56jjVxcrAAICYkVOIl2ULzcDyo3R/fPDdGHSUlMY86IDeRk5VCzRTnGzuuJVCquASR6N8+qRZizezQztw6neDkX0lMz2Tz/KIPr/sLZfTdRq9VCR9Rp+Vq8jBgxgs2bN7N161ZMTEyIjIwkMjKS9PT/rQjbt29fpkyZ8vr/x4wZw7Fjx5g/fz7+/v7MmDGDmzdvMnLkyI/62akZ2QSGvMiz11JQFX25GmRgYLTASbSD8ctViTPTxc0sRRrLf9xNTHg8ju42TFrcF5lcnIkm+jASiYTK9Uuz6MgkpiwfgL2rFbGRicwZuYGJHRcS4BcqdESdla/Fy/Lly0lMTKRBgwY4ODi8/tixY8frx4SEhBAREfH6/2vVqsXWrVv566+/KF++PLt372b//v3vHOT7Nr4Pw/LkdRRkRYu+Kl6ixEr/A7zaEiAjPUfgJKKC4Pzftziz9wZSqYSJi/tgYFQ4m/tFn0cikVCvXSVWnv2Bft+2Qc9AyYMbTxndYi5Lvt1OoriQaJ7L1zEvH3Ix9fb2/s/nunbtSteuXT/75/s+CKNby0qf/X0KMnc3a2QyKUnJGcTEJGNrayp0pALtVfEitryIEuNSWDJFcyPVfXRzSld+f7e2SPQuSn0FPUY3p3GXaqyddQDv/T4c2XyJ84duM/SnzjTqXFXcliSP6PQyoz73Q3V+3ItSKcfdTTMl3P9RuMBpCj5zS82WCjnZKtJSxN24C7Odf54kJSGNIp5O9BrbQug4Ih1i42jBt0v7M3fvGIp4OpGSkMa8MZuY0W8lMeHxQsfTCTpbvBjpK0hOzeDRU90fC1KmjBMA9x+Ixcv7GBjqvW59iY5MEDaMSDCxkYkc2nABgP5T2iIXV1wW5QOv6sVYdGQS/b9ri1wp5/rp+wxt9CvHtl4Wu/k/k84WL+VLa6ZkX78bLGyQL8Cz9Kvi5bnASbSDrYMZANHhiQInEQll++LjZGVk41m1CFUaegodR6TD5AoZ3Uc148/jkylZ0Z205AwWTdrGD72WEfNcbIX5VDpbvFT01FzQr90JFjbIF1Dm5Wt98iSSrCxxIOr72NpripeoiARhg4gEER+TxLGtlwHo920bcQyC6ItwK+HA/APjGDy1A0p9BbfP+zO86WwuH7sjdDStpLPFSxUvNwD8HoeTmJz+nkdrN0dHc6wsjcnOzsXvvu7PsPpcTm6atXFCg3R/Kr3ovy4e9iUnO5eSFd0oV7O40HFEhYhMJqXz0MYsPfEdJSq4kpKYzi+DVrPsx11kZRSevaPygs4WL/bWJhRxsSZXpeaKb5DQcfKVRCKhYkVNsXbbN0TgNAWf28vp5c/EtXEKpQuHbgNQr61uz0QUFVzORW2Zt28cnYc2BuDguvOMa7eAMPE96YPpbPECUKdyEQAu+QQKnCT/Vazwsni5HSxsEC3gVuxV8RIjDporZOKik/C7qnk/qN26grBhRIWaQiln8NQO/LRxKKYWRjy9H8bolnO4cPC20NG0go4XL0UBuOIbTFa2bo8FqVRJU7z4P4ogOTlD4DQFm7ObFVIppCZnEBWeIHQc0Rd069xD1Go1xcu7YudsKXQckYhqjcuw9OR3eNUoRnpqJr8OXcvm+UdQ6fgyH59Lp4sXz2IO2Fgak5aexfW7z4SOk6/sbM1wd7dGpVJz4+ZToeMUaAqlHCt7QwD874ljhAqTQD/N79uzShGBk4hE/2PtYM5vO0bS6euGAGxZcJTfhq0nIz1L4GQFl04XL1KphAbVNQPyzlx5LHCa/FejejEArl7T/W6yz2Xvotm6/uEdce+RwiTo5XICRV+ujSQSFRQyuYwh0zsxdn4v5AoZFw7dZnKnhbwQZ0W+kU4XLwCNapQA4MLNAJ3vOqpZQ9NNdu16ILm5YpPju9i5aFbafXBHHOBcWKjVagJfFi9FyjgLnEYkerPmPWry6/aRmFoa8+RuKGNaz31ddIv+R+eLl7IlnLCxNCY1PYsrt3V71pFnaSdMTQ1ITs7gzl3xovwuDq6alpfAR5GkimOECoW05AxSEtIAzWwPkaigKlujGIsOT8CtpANxUUlM7rqYR+JkjH/R+eJFKpXQtHYpAI6dfyBwmvwlk0mpU0vTTXbu/COB0xRsxmZKnNysUOWquHNDt4takUbayyJVrpChZ6AUOI1I9G72rtbM2zeW0pU9SElIY0r3P7l75YnQsQoMnS9eAFrW0yz/fenWU5JSdHvBuvr1SwNw8eIjsevoPSrW0AzavHUlQOAkoi8hLVVTvBgY6QmcRCT6MMZmhszaNoLytUuQnprJ1N7LuXHmvtCxCoRCUbwUdbWhuJsNObkqTl7S7RaJihVcMTXRJz4hTew6eo+K1TXFy83LAeJ6L4VA+stdxA2M9QVOIhJ9OAMjPX7eOJRqTbzIysjm54GruH7KT+hYgisUxQtAq/plADh09p7ASfKXXC6jXj1NN9nJU2KF/i5lK7ujUMqJfB5PcIC4sqWue7VzdG5OrsBJRKKPo9RXMHX1YOq2qUhOdi4zv17DvauFu8W40BQvzeuWRiGX8SgomkdPo4SOk6+aNfUC4Nx5f9LFdQLeysBQSeVamunlF8VCT+eZWGhmmCXGpYotbSKtI1fImPxnP2o0K0t2Zg4z+q98vW5RYVRoihdzU0PqV9NcqP4+o9utL2U8nXB2siAjI5uLl8QBXu9Sp/HL8VCndXswtwjMLDXFS05WDhlpYlEv0j5yhYzvlvXHq0Yx0pIzmNp7GeFBMULHEkShKV4A2jUuB8Dxiw9J1eEWCYlEQrOmZQE4fkLsG32X6vVLIpfLCA6IFjdq1HF6BkqU+goA4qOTBE4jEn0aPQMlM9Z9TRFPJ+JjkpnWdwXJL5cAKEwKVfFSydMFVwcL0tKzOH5Bt++0mzcvi1Qq4Z5fGLFxmULHKbBMTA2oUkczvfzUQV9hw4jylUQiwbmoHQBB/uECpxGJPp2RqQG/bBmOrZMFz59G8/uI9YVuLFehKl6kUgmdmlcAYM9xX53u97axNqFmTU03mZ9fvMBpCram7SoAcOqQb6F7AyhsipXVrKwbeE/cFkKk3SxtTZm29mv09BX4eD9kzcwDQkf6ogpV8QLQun4ZDPUVBIXF4nNft9/A2rWuCMAD/0QyMrIFTlNwVatbAjMLQ+JfpOBzRdwXSpcVK+sCQIBYvIh0QFEvZyYs7APAvlVnObP3hsCJvpxCV7wYGerR4uWidTuP3hI4Tf6qXNkDB3szsrJUnDn7UOg4BZZCIadhS814qCN7bgqcRpSfipdzBeDhrWCxlU2kE+q2rUiP0c0B+PO7HUSGvBA40ZdR6IoXgK4tKwFw8WYgwc9jBU6Tf6RSCe3aalpf9u330eluss/VqktVAK6ff0Tkc7GbTVcVL+eCqYURKQlp3L/+VOg4IlGe6D2xFWWqFSE9NZP547agUun+6uqFsnhxc7SkThXNDszbD/sInCZ/NW/uhVIhJSQ0jhs3xT183sa1iA0VqxdBpVJzZHfhaXotbGRyGdVfroN05fhdgdOIRHlDJpMyYWEf9A2V+F0NYP8qb6Ej5btCWbwA9GpTBdBs1hiXkCpwmvxjZKhHGU9zAHbtvi5smAKuXY/qABzbd4tMcYyQzqrRXLOMwOVjd8XWSJHOcHCzZsj0TgCs//0goQGRAifKX4W2eClfyokyxR3Iys5lm463vlQob4FUKsHnVjCPH+v2Cf05qtUriZ2jOUkJaZz8+7bQcUT5pFL90hgY6xMdFset8/5CxxGJ8kzLr2pRpWFpsjNzWP7jbp0uzgtt8SKRSOjfUXOnve+EL4nJurvbtKmpkob1Nfsdbdl2WeA0BZdMJqVz39oA7N5wSRzQqaP0DZQ0614DgP2rvYUNIxLlIYlEwrCZXZEr5dy+8Einu0YLbfECUKtSEYq72ZCWkc0uHZ951L27plC7cPExQcGFcznpD9GsfUXMLAyJfB7P+RPifke6qt3AekgkEm6eeaDzzeuiwsXR3YbO3zQC4K8Ze8nS0S7wQl28SCQS+nXS3IHtPHqb5NQMgRPlHzdXK+rWKQHA1m1XBE5TcOkbKGnfS3NO7Fh7vlCM2i+MHN1tqNFMM3B378ozAqcpHNKzcnH/7jDf79PtveUKgh6jm2HtYE5UaBx/rz8vdJx8UaiLF4AG1Yrj4WxFSlomO3R87Evvr2oBcObsA4IK6WZeH6Jt9+oYGesTHBDNuePi3lC6qvOwJgCc2HGNsADd3mm+ICg97RgAW6+FsPj0E6KTdPdmUWj6hnr0ntgKgP2rzpKdlSNworxX6IsXqVTCoK6ai/r2I7d0euxL8WL21KtbErUa1m+8IHScAsvE1IAu/TRjXzYtO0NOtjj2RReVqVqE6k29UOWqWP/7QaHj6Lx1A6q+/u8FJx9T67czjN/pS3qW+PeVHxp2rIKlnSmxkYl479O9xTcLffECmtaX4m42pKVnsfWg7v2S/6l/v7pIJJqxL+LMo7fr8FUNzCyMCA+NE2ce6bAB37dDKpVw6cgdHvqI6yDlp4YlbXk0swWD6ngAkKNSs/fWc55EJwucTDcp9RS0H9QAgD0rz+jczCOxeEHT+jK4m6b1ZdexW7yITxE4Uf5xd7OmcaMyAKxa4y1smALMwFCPnoPrAbB5xVky0rMETiTKD24lHGj6cubR8qm7yc0Vxzjll7jULGb8fZ+1lzRForGenOltPSnrZCZwMt3VqndtDIz1efYogruXnwgdJ0+JxctLdSoXpUxxBzIyc1i7W7cHtPbvVxe5XIrPrWBx1d13aNW1KvZOFsTGJLNr/UWh44jySd9JrTE2M+DJnRD2rzordBydk6tSs+nqMxrO82bb9VDUauhU0YkzE+szoLYHEolE6Ig6y9jMkPrtNdvheO/XrV4FsXh5SSKRMOIrzZ32wTP3CA7T3T2PHB3Mad9Oc0L/teqseLf5FkqlnEFjmwGadV9iohIFTiTKD5Z2Zgye2hGAjXMP8/xptMCJdIfPs3jaL73I1P1+JKZnU8rehF1Da7KgewVsTfSFjlcoNOygWU3+4mFfsjJ1Z9q0WLz8Q4XSztStUpRclZpl23R7QGvvr2pjZKRH4NNoTp0W1zN5mzpNPPGq5EZmRjbrFp8SOo4onzTrUYOK9UqRlZHNoknbUYkF/Wd5kZLJxF136Lz8Mn7PkzDRl/NTuzIcGlWHqu6WQscrVMpUL4qVvTkpien4eD8UOk6eEYuX/2dYr7rIpBIu3gzExy9E6Dj5xszUgK961gRg9ZpzpKVlCpyoYJJIJHw9oQUAZw7fwe9WsLCBRPlCIpEwdl5PDIz18fcJ5sYhccfpT5GTq2LdpSAazvNmt08YAN2qOHN2YgP61XJHLhMvOV+aTCalXtuKAFw7qTtLP4hn0v/j7mRFh6blAVi80ZtcHV6krFPHKjg6mhMbl8KmLeK2AW9ToowTLTtrml4XzzxIdrburZkgAlsnS8bM6QHA7ePBXD8ltkh+jNsh8bRZcpGfDj4gOSMHLydT9g6vxZwu5bE21hM6XqFWvrZmgVK/a4ECJ8k7YvHyBoO71sLESJ8nz2I4eEZ3KtX/T6mUM3K4ZqGuPXtvEBKqu+N8PtfA0U0wszAi5GkMezZcEjqOKJ/Ub1+ZNv3rAPDH+K1EPHshcCLtMXjDTfwjNdOeK7qas3lQdSq5WgicSgTgWbUIAM+fRhMfkyRwmrwhFi9vYGZiwKCumi6Vv3Zc1OltA2pUL0aN6kXJyVHx59JTOrcWQF4xMTPkm4ma7qOtq84RHiIWerpqwPftsPMwIzUpnZlD1pCeKnapfoiBdTwwUsoAuB2SQM3ZZ5iy9y73w8WB7kIzMTfEvZQDAPev60aXqFi8vEWnpuVxd7IkISmdVTt1u0tlxLAmKBQybvoE4X3OX+g4BVbDVuWoWL0IWZk5LJixX9z3SEcplHKaDi6LmZUxT++HMXvoWnGV5Q8womExrv3QhF86eFHCzpj07Fy2XQ+l9eKLdFp2iX23w8gQj6Ngipd3AyD0iW4sTioWL28hl8sYP0CzM+fe4748Dtbd6ZNOThavB+/+uewUKSm629L0OSQSCWOmtUffQInfrWf8vf260JFE+cTYQp8fVw9CT1/BjTMPWDRpq9gq+QGM9eT0qeHG8bH12PlNTdqWd0QulXArJIFxO+5Q67cz/HbUn9C4NKGjFjp2zpouvOjweIGT5A2xeHmHKmXdaFyzJCq1mnlrTqFS6e6bV4/uNXBxsSQ+PpXVa88JHafAsneyYPA4zdov6xafFLuPdFjJim5MWTEQqUzKqV3XWTf7b6EjaQ2JREI1D0uW9KzI5SmNmNisBI5m+sSlZrHiXCD15p5l4PobnPWPJleH31cLEhsnzRT1mOdi8VIojO5bH0N9BX6PIzh4Vne3clcq5Ywd3RyAg4du4+cXJnCigqtVlypUqOZBZkY286btIzdHbArXVdWbejFmbk8Adi09xbZFxwVOpH1sTfQZ2ag45yc35K8+lalb3Bq1Gs74RzNg/Q0azDvLinOBxKWKW3DkJxsHcwCixeKlcLCxNGFIN80Ow0s3n9fpfY8qVnCjRfOyqNUwZ/4RMnVoNca8JJVKGTu9A4ZGejzwDWH7Wt1e0LCwa9a9BgN/aA/AxjmH2LbwmMCJtJNcJqVZGXs2DarO2YkNGFzHAzMDBaFx6fx21J8as08zfocvt0LixS66fKA0UAKQoyNLPYjFywfo0rIipYrYkZKWycL1ur33ybBvGmNlZUxYWBxr14sX5bexd7Jg+JTWAGxZ6c0DX91d0FAEXYc3of93bQHNFgJb/xALmM/hYW3Ej208uTqlMXO6lKOskxlZOSr23n5Op2WXabPkItuvh5CWpRsX2oLg1arRUqluXPZ141XkM5lUyrdfN0UmlXDm6mMu+ujOQj//n4mJPhPGaaYE795zHb/7YvfR2zRuXZ6GLcuhylXx+/e7SU0WBzrrsu6jmjFgiqaA2TTvMOtn/y22EHwmA6WMblVcODiqDgdG1KZLZWf05FLuhyfx3d57VP/1ND8dvE9gjO62eH8pr4oXmVw3Lvu68Sq+gJIedvRoXRmAuatPkaLDy+nXqF6MZk29NN1Hcw+Tni72Rb+JRCJh5A9tsHeyICo8gQUz9osXMx3XbWQzhkzTbOK448+T/DF+C9li60CeKO9izryu5bk6pTE/tCqNm5UhyRk5rLsUTOP55/hq9VWO+UWQI+479Ulebcool8sETpI3xOLlIwzqWgtne3Ni4lJYstFb6Dj5asSwJlhbmxD2PJ6Vq3S7q+xzGBnrM+W3rsjlMi6dfsD+LVeEjiTKZ52+acToOT2QyqSc3HmN6X1XkJqcLnQsnWFhpGRIvSKcndCADQOr0aS0HVIJXAqIZejmW9T5/SyLTj0hOkls6fwYr1aLtnPRjY0xxeLlI+jrKfh+aHMkEjh41o9rd4KFjpRvTEz0+XaSZkzH3wdvc+267naVfa6SZZ35+uXqu6sXnhDHvxQCLb+qzYz1X6NvqOT2hUdM7LiQGB1ZP6OgkEol1C9hw+p+VTg/uSEjGhbF2lhJZFIGf5x6TK3fzjBiyy2uBMaKLZ4f4PnTGACcitgKnCRviMXLR6pQ2pkuLTQ7dP628oROdx9VruROp46aDQnnzj9CYqK4sNTbtO1ejfotypKbo+LXyTtJiBP76HVd1UZlmLt3LBa2pgQ/DGdc2/n4i7uO5wtnC0MmNS/Fpe8asahHBaq6W5CjUnP4XgQ9V12l6R/n2XA5mKQMcYbk24QFRgHgXNRO4CR5QyxePsHQHnVxsjMnKjZZ52cfDRlUHzdXK+LiUvl97mHxDuctJBIJY6a2w9ndmhfRScyatEPcfboQKFbWhYWHJuBW0oHYyEQmdVrIofXnxb+TfKInl9G+ghO7htbi6Ji6fFXdFUOljIDoFKb/fZ8av57m+333eBCuG5sP5pXcnFye3NG0CLsWtxc4Td4Qi5dPYKCvYOrwFkglEo6cu8/Za4+FjpRv9PQU/PhDexQKGVevBbJ7zw2hIxVYhkZ6TFvQE0NjPe75PGPZb0fEi1ghYOtkyfwD46jdqgI52bks/WEXc0ZtJEOHW2ULgtIOpszqWJZr3zfm5/ZlKG5rTFpWLluvhdBq8QW6LL/MAd/nZIqLSPLwVjDJCWkYmxtSooKr0HHyhFi8fKJypZzo3aEaAHNWndTpxeuKFrFl+LDGAKxa443/owiBExVcrkVs+G52VyQSCUf33OTgDnH/o8LAyMSAH/4ayJBpHZHKpHjvu8mY1vMIDdCNTfAKMhN9BX1runNiXD12fF2D1uUckEsl3HwWz5jtvtSafYY5x/wJiy+83d7XT/kBUKWhJzJxtpFoUJealHC3JTE5g19XHNfpvY/atalIvbolyclR8cusA+Lmje9QrW4JBo5pCsCKuUfxuRwgcCLRlyCRSOj0TSN+3zUKSztTQh5HMrrlXI5uuSS2wH0BEomE6kWsWNqrEpe/a8SEpiVwMNMnNjWLZd6B1J1zlsEbbnD2UbROv1f/f2q1mqsnNMVL9SZlBE6Td8Ti5TMo5DKmj2qFUiHnqm8wO4/eEjpSvpFIJEwc3xJ7ezMiIhLE8S/v0aVfbZq0qYAqV8WsyTsIehIldCTRF+JVvRhLjn1L+VrFyUjLYvHk7Uzvu4K4qEShoxUatqb6jGpcnAuTG7LyH/spnXoYzYB1N2gwz5uV5wKJLwT7Kd259JjQJ5HoGSip0tBT6Dh5Jl+Ll/Pnz9O2bVscHR2RSCTs37//nY/39vZGIpH85yMysuA2vXo4WzG6b30Alm05z6OnunuRMjbWZ/qPHVAoZFy6/IQdu8QukbeRSCSMntaOspXdSEvJZNqozcRGi4MICwtLW1N+3TGSIdM6otCTc+PMA4Y2+pULB28LHa1QkcukNH+5n9KZCfUZVMcDU305IXFpzD7qT/XZp5mw8w6+oQk6ezO2Z8VpAJr1qIGxmaHAafJOvhYvqamplC9fnqVLl37U8x49ekRERMTrD1vbgj0vvWPT8tSrWoycXBXTFx8mLUN3q/mSJR0YObwJAKvXeHPnjrimydsolXKmLeiJs7s1MZGJTBu9hbRUcRBnYSGVSun0TSOWHJ1MsbIuJCek8evQtfw2fB2J4lT6L66IjTFT23hy7fsmzOlcDi8nU7JyVOy5FUaHpZdo9+cldtwIIT1Ldwb4BvuHc/PsQ6RSCR2HNBQ6Tp7K1+KlZcuWzJw5k44dO37U82xtbbG3t3/9UdA3kpJIJHw/tBm2VsaERMQzb/Vpna3iAdq0rkDTJmVQqdT8PHM/0WKLwluZmBny85LemFkYEegfwcwJ28kSl5MvVNxKOvDHwQn0GtcCqUzKuQO3GFL3F45vu4JKJS51/6UZKGV0q+rCwZF12D+iNp0rOaOUS7n3PJFv99yj+q+n+PngA57qwH5KWxYcBaB2qwo4uFkLnCZvyYUO8CYVKlQgMzMTLy8vZsyYQe3atd/62MzMTDIz/3c3m5SkuZBmZ2eTnf3lFiwy0JPz47DmjJ21l2MXHlCupAOtGwg/OOrVMcjrYzFyeGMCn0bz9GkMU6fvYf7c7ujpKfL0Z+SX/Domb2Njb8K0P7rzw7BN3LoayJzvdzNxZkdksoJRlH/p41HQ5dfx6DGmGZUblmbJ5O0E+0ewcOJWjm27zLCZXfAo7ZinPysv6fL5UcbeiN86evJt82LsuRXO1uuhhMans/ZSEGsvBVGrqCVfVXOhUUkb5C//XrXlePh4P+TiYV+kUgldhjfK17x5dUw+5vkS9RdqIpBIJOzbt48OHTq89TGPHj3C29ubKlWqkJmZyerVq9m0aRPXrl2jUqVKb3zOjBkz+Omnn/7z+a1bt2Jo+OX7967ej+fcnVjkMgl9mjlja6H3xTN8KUlJWWzfGUx6Ri4lS5jSvKlmbJPozUIDkjiyNQBVrhrPKtbUa+MqHq9CSJWr4p53KDcPPSU7MxeJVIJXA2eqtC6KnkGBvJ8sNFRqeJQg4WKUhPvxEtRo/j7NlGpq26moYavGTClwyA+QnZHDzlnXSI5Np1wjV2p1KSF0pA+SlpZGr169SExMxNTU9J2PLVDFy5vUr18fV1dXNm3a9Mavv6nlxcXFhYiICKysrD4n8idRqdRMmX+Qq3eCcbY356+fu2NkKFwBk52dzcmTJ2natCkKRd63jNy9F8p33+8mN1fF4IH16Nqlap7/jLyW38fkXS6cvM/cH/aiVkO3gXXoM0z4fmghj0dB9KWOx4uIBFb/coDLR+4AYGZtTJ+JrWjctVqBaZWDwnt+hMWns+NmGDt9wohLfbkjs1RCk1I2FCecoZ2boFQWzEpm2Q+7ObblMjZOFiw5PglDY/18/Xl5dY4kJSVhbW39QcVLgS/zq1WrxsWLF9/6dT09PfT0/lscKBQKwf7Qpo9qRf9vNxEWmcCcNWeYNa6t4HfY+XU8KlcqwohhjVn850nWrDuPu7sNtWoWz/Ofkx+EOEcatapAemo2S2YdZOfaixga6dNjUL0vmuFthPybKYjy+3g4uNowddVgfM49ZMXU3YQFRvPndzs5tP4CA39oT5WGnoK/b/xTYTs/PGwVfNfKk3HNSnLML5JNV55x81k8xx5Ecww5R2Nu0LeWOx0rOmGiX3COy7Gtlzm25TIA4xd8hZmFyRf72Z97jnzMcwtOef8Wvr6+ODg4CB3jo5iZGDBzXFvkMine156w5W/dXlK/fbtKtG1dAbUaZv76N4GBujtdPC+07lr19SJ265ecYveGtxfnIt1XuX5plp2awtfTO2JsbkiwfwTT+qxgSrclPL0fJnS8Qu/Vfkq7h9XiyOi69KjqjFKqJiAmlWkH7lP919P8sO8e/pHCT1y4dd6fJd/tAKDn2BZUqFNS4ET5J1+Ll5SUFHx9ffH19QUgKCgIX19fQkI002unTJlC3759Xz9+4cKFHDhwgICAAPz8/Bg7dixnzpxhxIgR+RkzX5Qp7sC4AY0AWLHtItfvBgsbKB9JJBJGjWxKpYpuZGRk8/3U3cTGav9I/fzUbUDd111Gq/84wb7NlwVOJBKSQimn49eNWHtpOp2HNkaulHPn8hNSk8WVrAsST0dTfmnnyc+Vc5nWuhTFXu6ntOVaCC0WXqDrCuH2Uwp6GM6sr9egylXRqFNV+kxs9cUzfEn5WrzcvHmTihUrUrFiRQDGjx9PxYoVmTZtGgARERGvCxmArKwsJkyYQNmyZalfvz537tzh1KlTNG7cOD9j5psOTcrRpqEXKrWaaYsOEx6tuytsyuUypk/tiKuLFTExyfwwdTfp6bq73k1e+OqbhvQcolngcOW8YxzYdlXgRCKhmZgbMnhqB1ZfmMqQaR0pW6PYOx+fm6siN/fd061zsnVn3ZKCwkAOfWq4cnJcPbYNqUHrspr9lG4Ea/ZTqv3bGeYe9+d5QvoXyRMVGsv0vitIS87Aq0YxxszrWaC6HPNDvhYvDRo0QK1W/+dj/fr1AKxfvx5vb+/Xj588eTIBAQGkp6cTGxvL2bNnadhQ+AGNn0oikTBhYGNKFbEjKSWDb+fu1+kF7ExM9Pl1VlfMzAx4/CSSn2ceeO8ba2HXd3gjug2oA8Dy34+wd5PYAiMCO2dLOn3T6K1fDw+KISUxDZlM+npwb25O7hvXl3oeFE3fqtP4bfg6nj+NzrfMhZFEIqFmUSuWflWJS981YlyTEtiZ6vEiJYulZwOp+/sZBm+4ybnHMfm2n1KAXygTOvxBTHg8zkVtmbZ6MEotWbbicxT4MS/aTk8p57eJ7bE0MyQw5AUzlx7T6U3BHB3MmfVzF/T05Fy7HsjCxcd1esG+zyWRSBgwuindB9YF4K/5x9i57oLAqUQFmVqt5vzBW3Qr8x1Tui/B9+IjAGRyGRKJ5D+tMW4lHBj/x1dkZebwTcNZDG8ym0tH7wgVX2fZmeozpklxLn7biBW9K1G7mBUqNZx6GEW/tddpON+bVeef5ul+SldP3GNSx4XERibiWsKe2TtGYWJhlGffvyATi5cvwNbKhNkT2qGQy/C+/oR1e64IHSlfeXo68eP37ZFKJRw+cofNW8TWhHeRSCT0H9WEr75pAMDaRSfZtOyMWPSJ3kgikdBjdHP+ODgeW2dLfhrwF70r/8iOJSfIysj+V2vMKxXqlGTamiHs9p9LuVolmDVkDRPaLyApLlWgV6G7FDIpLbwc2DK4BqfG12dAbXdM9OU8i01j1pGH1Jh9mom77nAnNOGzfs6BNd78MmgVGWlZVKxbkvn7x2HtYJ4nr0EbiMXLF1K2pBOTBmvG7qzZfYUzVx8LnCh/1a5VnFEjNTNq1m24wOEj4p3eu0gkEvoMa8SA0Zp9o7b85c2qBcfF5eNFb1Wyojvj5n/Fuqsz6DqiKaf33KCL52R+6LWUZ48j/vN4lUqFvoESPQMFdq5WNOxUFVPLwnGXLpRitsZMb1uGa9835rdOZfF0MCUzR8VunzDaL71Euz8vsvNm6Eftp5SemsmCcZtZMW0PKpWaFr1q8vOmYTq16eKHEIuXL6hNw7J0b6VZKfjnP49y/8l/32B0Sfu2lejVoyYAfyw6xrnz/gInKvi6D6zH0MmaWQJ7N11mwfT95Aowc0GkPcytTGg/sD7LT09h1lbNzEzfC49ef/1VAZyemsnelWfYtfQUXYc3oU2/uoLkLYwMlXJ6VHPl8Og67B1ei04VnVDKpNwNS2Ty7rvUmH2amYceEPTi3S1hvhcfMbzpb5zceQ2JRMLAH9ozek5P5ArZF3olBUeBX6RO14zsU5/QyAQu33rK5Ln7WT2zFw62ZkLHyjeDBtYjMSmNw0fuMGv23xgZ6VGlsofQsQq0Dr1qYGyiz4IZ+zl10JeU5Aym/NYVvQK0EJao4JHJpJStUYyyNYr9q8Xu1ayTXUtPceHgbb6a0JJWvd++X5wo/0gkEiq5WlDJ1YIf23iy82YoW649IzQundUXg1h9MYi6xa3pU8ONRqVsX++nlJyQxupf9nFiu2ZGoo2jBZOW9H3vbDRdJra8fGEyqZSfRremuJsN8YlpTPx9Hylpme9/opaSSCSMHd2c+vVKkZOjYtqMvdx/8FzoWAVek7YVmDq/BwqlnKve/vw4YiMpSV9m2qVI+0ml0tcFTFZGNt77b7Lzz5O0+KoWXYdpuibFMVXCsjRSMrR+UbwnNmRd/6o0LmWLRAIXnrzg600+1JtzliVnnnBwz02+aTCTE9uvIpFIaNu/LivOfl+oCxcQixdBGBkomfttR6wtjAgKi+WHPw6So8NdAzKZlCnftqFKZQ8yMrKZ8sNOAgLEVXjfp2aDUvy6vC+Gxnrc83nGhAFriI5IEDqWSEu8anE5tOECG+Ycpk2/OnQd3gTlyxY8XV8HRFvIpBIalrJlTf+qnJ/UkGENimJppCQ8MYP5Jx4z6moEfiWLYFyxCHP2jmH4rG75vleRNhCLF4HYWpkwd3JHDPQU3Lj7jN/+OqnTd0JKpZyfpnekjKcTKSmZTPpuO8HPXggdq8ArW9mdeWsGYWljwrPAaMb2XUWAv26PlRLljdwcFZeP3WH974do3LkqfSa2BhAHgRdgzhYGNFTkUvv6PRwv3sEgOh5kUpI8HLjhVYIJl56z6UowyRnZQkcVnFi8CKhkETtmjmuLTCrhyLn7rNqp21OKDQyUzP61KyWK25OYmM7EydsIDYsTOlaBV6SkPQs3DsGtqC1xMclMGriGGxd1e7aa6PMF+4ezad4RqjYsTe8JrV6v/yGVvv1t/+iWS5zceY2E2OQvFVOEZqXkS0d8GdNqLtP7riDgVhA2ES8Y62LA1l4V6FnNFQOFjEdRyUw9cJ8av57mx/33eBRZeH9P4oBdgdWs6MGkwU347a+TrN97FVtLYzo0LS90rHxjbKTP7791Z8KkrTx9GsOESdv4Y34vnBwthI5WoNk6mLNg/WB+mbgd32tPmT5mKyOntKFVlypCRxMVUMXKurDw4ASyXt6lq1SqdxYuKpWKTfOOEB+dhEQioXRld6o0KkPFeiVQ6/DCmkJ6EZHA6d3XObL5EtEvb+T0DJS06VeXTt80wtLWFIBa5ZyY0qoUe33C2HT1GYExqWy+GsLmqyFUc7ekd003WpSxRykvPO0RYvFSALRrXI7ouBTW7r7CvDWnMTc1pEH14kLHyjdmpgbM/a0H4ydt49mzF0yYuI3583qKBcx7GJno88ufvVn089+cOujL4pl/8ywwmq8nNEcmL3xTJUXvp2egRM9ACby7xQUgKzOHll/V4uoJP57eD+PBzSAe3Axi4xzQN1Zw/2gsFeuWpHztEjh62IhjZj5RanI610/d58ye69w65/96xXVTCyNa9q5NhyENMLcy+c/zTPUV9K/tQb9a7lx5Gsvmq884fj+K68FxXA+Ow9pYj6H1izCojkeh+N2IxUsBMahLTV7Ep/D36XtMX3yYBVM6UdnLVehY+cbCwoj5c3owfuI2QkJjGT9xKwvmiS0w76NQyJnwc0ccXS3ZuPQMB7ZdJTQohilzumFiaiB0PJEW0zdQ0mdia/pMbE1MeDzXT93Hx/sBvhcfk56SycXDvlw87AuAlb055WoVo0zVonhVL4pLcbv3FkeFWVJcKldP3uPSYV9uXXhETlbO6695VS9K0+41qN+u0utC810kEgm1ilpTq6g1kYkZTNl7l7OPYniRksmsIw/pWc0VIz3dv7Tr/ivUEhKJhEmDm5CUnIH39Sd8O+8AS6d3o6SHndDR8o2lpTEL5vX8dwEztxdOTmIB8y4SiYReQxrgVtSWOd/v4dbVQMb2+YsZi77Cxd1a6HgiHWDjaEHrvnVo3bcOaanpbFy5EyO1NX5XAnngE0RsZAJn997k7N6bABibG+JZ2YPSVTwoUcGN4uVcMTEvXCu+/lNuropAvzBun/fn1jl//K4HovrHflPORW2p26YiTbpWx9HD5pN+RnRSBr8f8+fsoxgAzA0VTG3tWSgKFxCLlwJFJpUyfVQrkmbv5daDUMbP3suKn3rg4qC7F/NXBcyESdt4FhLLuIlbmTenB64uVkJHK/BqN/JkwXoLfhq3lefPYhnb+y+++60LVeuUEDqaSIcolHIciprTqlUzFBMUZKZn8eBmEPevB3L/eiAPfYJJSUjj+un7XD99//XzHN1tKFbOhSKeTriVdMCtpAN2LpY62UKTmpROoF8Yj++G8PDmU/yuBpIU/+/Vcot4OlG7VQVqty6PWwmHT/5Z2bkqNlwOZuGpJ6Rk5iCRQI+qrkxuXhILo/e33OgKsXgpYPSUcn6f1J4RP+3kcXA0o3/ZxbKfeuBgYyp0tHxjaWnM/Hm9mDh5G8HBLxg3fgtzfu9B0SK2Qkcr8IqWcmDxlm/4efx2HviGMG3UFnoPbUDPIfV18iIhEp6egZKKdUtSsW5JAHKyc3n64Dn3rwXwyPcZj++EEBH8gvDgGMKDYzj/961/Pde1hD0uRe1wLGKDk4cNjh62OHnYYKQF3Z65Obk8fxpN8N0Y9jw7zbNHkTy5E8LzoJj/PNbQRJ/ytUtQqW5JKjUojaP7p7Ww/NPlwBdMP3CfJ9EpAFRwMefn9mUo52z+2d9b2+hs8XL69hO6NdHOu3cjQz0WfN+ZETN28Cw8jjEzd7FsRnesLYyFjpZvLC2MWDC3F5On7CAgIIrxE7fy26/dKF3KUehoBZ65pTG//dWfv+Ye5dCuG2xafpbH958zaWZnjLXggiDSbnKFjBLlXSlR/n9j9JLjU3lyL5SAe6EE+4fzzD+C0MAoMtOzeHInhCd3Qv7zfUwtjLBxssDG0QIbJwtsnSywsjfH3MoYcxtTzK2NMbU0/s+O2XlFrVaTkZZFUlwKsZGJxITHExMeT/TzeGKex2uKsaAYcrJfLSj6781mbZ0tKV7OlZIV3fCqXpQS5V3zbCB9RGI6Mw8/5PBdzRpPlkZKvmtRii6VnZFKdX9w7pvobPHy+85zuDk7Ur2Udg56tTQzZPHULgybvoOwyATGzNzN0undMDfV3X5kc3NDFsztyXc/7OLBg+dM+nY7s37pQvly2vk7/JKUSjkjf2hLCS9nlsw6yLXzjxn11Uqmzu9BkRL2QscTFTImFkZUqleKSvVKvf5cbk4uEcEvePY4grDAaJ4HxRAeFE14UAzxMckkxaeSFJ9KoF/YW7+vRCLB2MwAI1MDDI31MTQ1wMhEH31DJQqlHIVSgUJPjkIpRyqToFapNbN51Jp/c7JzyUjLJCMti8z0LDLSs0hNyiAxNoWk+BSyM3Pe+rNf0TNQYmKtR5lKxXEv5Ujxcq4UK+eCmWXe31xm5ahYczGIJWeekJaVi1QCvWu4MaFpScwMC/deZzpbvOTkqpi48iB/jetCaVftHPRqY2nC4qldGTptO0FhsYz7dQ+LfuyKqQ4vDW1srM/c37rzw7Td+PqG8N33O5k+tSM1qhcVOppWaNa+Ih4l7Phl/HYiQuMY13cVI6a0oVn7ikJHExVyMrkM52J2OBf77/txanI60WHxxDyPIyY8gZjncUSHxxMXlUTCi2TiY5JJjk9FrVaTnJBGckJavuVU6MmxsDHF1ullC5CjBTZOlti7WuFczA5zGyOOHTtGq1atUCjyr4A4/ziGGX/f5+nLnaaruFnwU/sylHHU3Y18P4bOFi/lizjgFxbPyCX7WDepO6622jno1dHWjMVTuzB8xg4eBUW/LGC6YGyoJ3S0fGNgoGT2zK789Mt+rl4LZOr0PUye2IqmTbyEjqYVipd25M9tQ/n9+934XA5gwfR93L0RxIjvW2Ogw+eNSHsZmRjgUdoAj9Jv7ybOzcklMS6V5IRU0pIySE1OJy1Z829GWhY52blkZ+aQnaX5UKtUSKRSJBKQSCVIJBLkChn6hnroG2rWv9E3UGJooo+ZlaZLyszSCD0D5TvXScnOzt+l+cPi05h56CHH7kcCYG2sx5SWpehUyalQrN/yoXS2ePmlXzO+23CGR2ExDF+8l3UTu2Njrp1jRtydrFgytSsjf97Jw8BIxv26h4Xfd8ZIhy9EenoKfp7RiTnzjnDq9H1m/36IxKR0unSqKnQ0rWBqbsgvf/Zm59oLbFx2hlOHfHl0P4zv53THo7h2tkSKCjeZXIalrenrVWd1TUZ2LqvOP2WpdwAZ2SpkUgn9aroztmlxTPULdxfRm+jsdARjAz3+HNURFxtzwmOTGLFkL0mpGULH+mRFXW1Y9GNXTIz0uf8kgvGz95KaniV0rHwll8v4bnIbOnfSLIG/bPlpVq3x1ukNLPOSVCqlx+D6/L5qAFY2JoQGvWBM75Uc3XNTPIYiUQFyxj+K5gvPM//kYzKyVVT3sOTI6LpMa+spFi5vobPFC4CVqRHLRnfC2tSQgPBYRi3dT1qG9l7wS7jbsvjHLpgY6XHvcTgTZu8hNS1T6Fj5SiqVMHxoYwYPrA/Atu1XmTP3MDk5ue95puiVspXdWbpjOFVqFyMrM4dFv/zNrEk7SE7Mv3EDIpHo/UJi0xi84QYD19/kWWwadqZ6LO5Zke1f16Ck/X+3CBD9j04XLwBO1mYsHd0ZU0M97gVFMG7F32Rmv39EeUFVsogdC3/QFDB3H4UzbvYeUnS8gJFIJPTqWZOJ41silUo4ftKPKT/sIjVVt193XjK3NOLnJb0ZNKYpMrmUi6ceMKzrMnyvPxU6mkhU6GRk57Lg5GOa/HGOUw+jkUslfFOvCKcnNKBdeUdxbMsH0PniBaC4kzV/juqEoZ6CG49C+XbVYbJztffOvXRRexa/7ELyexzB2Fm7SdbiLrEP1apleWb+3Bl9fQU+t4IZO34LMS8K75bwH0sqldJ1QF0WbvwaJzcrXkQn8d3X61m76BS5Oar3fwORSPRZ1Go1x+9H0mTBORaffkJWjoo6xaw5NrYeU1qVxriQLO2fFwpF8QLg5W7PouEd0FPIOH/vKVPXHSNXpb1v2CWL2LFkWlfMTPR5EBDJmJm7SUxOFzpWvqtRvRh/zOuFhYURgU+jGTl6I0+DooWOpVWKezqydPswWnXRjCXat/kKe1f58yxQPI4iUX4JepFK/3U3+GaTD2Hx6Tia6bPsq0psGlSNYrbaOZlESIWmeAGoXMKZeV+3RS6TcsLnMT9tPPF6O3JtVMLdliVTu2FuYoD/0yhG/LST2ITU9z9Ry5Us6cCfi/rg6mJFTEwyo8du5voNsfvjY+gbKBn9Yzum/9ETU3NDXkSmM7bPanauu0BurvYW9SJRQZOWlcOcY/40/+M85x7HoJRJGdGwKKcm1KdVWQexi+gTFariBaC2lwezB7VCJpVw6NpDZm45pdUFTDE3G5bO6I61hRFPQ18wfMYOol4kCR0r3zk4mLN4YW8qlHclLS2L73/cxYF/7KEi+jA1G5ZmybavcSthRk52LmsXnWTCgNWEBr8QOppIpNXUajWH70bQeP45lnkHkpWrokFJG46Pq8ek5qUwVIpdRJ+j0BUvAI0rFmdm/5ZIJRL2X/bjt+1ntHrqqIezFctm9MDexpTQiHiGzdhBWGS80LHynampAb/P7k6L5mVRqdQsWnKCJUtPii0HH8nS2oSWvYoyZlo7DI318L8bxojuy9i76TIqLe5aFYmEEhCdTO811xix9RYRiRk4WxjwV5/KrOtfFQ9rI6Hj6YRCWbwANK9akp/6NUcigd0X7jJnp3avH+Jsb87yGd1xdbAgMiaJYdN3EBii+3fPCoWMSRNaMWRQAwD27ffh+x93kZKi+wOY85JEIqFJ2/Ks3D2SSjWLkpWZw1/zjzFx4FpC37Bjrkgk+q+UzBx+PfKQFgsvcCkgFqVcypjGxTk1vj7NytiLXUR5qNAWLwCtq5dmWu9mSCSww9tX6wsYO2tTls3oTlFXa2ITUhk+Yzt+jyOEjpXvJBIJPXvUYMa0jujrK7hxM4jhozYSEhordDStY2NvxqxlfRn9YzsMDJU88A1heLdlbF3lTbYWLzEgEuUntVrNAd/nNJrnzV/nn5KjUtOktB2nxtVnXNMS6CvyZndp0f8U6uIFoH2tMkzt3fR1AfP7jrNaXcBYmhuxdHp3ypZwJDk1k/G/7SPwue4P4gWoV7cki/74ClsbU8LC4hgxciPXrgcKHUvrSCQSWnWpwso9I6lapzjZ2blsXHqGUT1X4H8vVOh4IlGB4h+ZRPe/rjJmuy/RyZm4WRmyrn9VVvergquVodDxdFahL14AOtTyel3A7Dx3h9+2a3cBY2qsz6Ifu1CzggeZWTnsPR/ByUv+Qsf6IooXs2f50n6U9XImNS2T73/cxbbtV7X69ykUWwdzfl7Sm29nd8HMwpDggGjG9V3N8t+PkCYuECgq5JIzsvnp4H1aL77I9aA49BVSJjYrwfGx9WhYylboeDpPLF5e6lDL63UX0q7zd5i19bRWz0LS11Pw+6T2NK1VEpUaZi4/wdaDN4WO9UVYWBgxb05P2rSugFoNq9Z488usA6Tr+F5Q+UEikdCwZTn+2juKxm3Ka5rHt13l645LuHDyvlgUigodlUrN9WgJTRdeYt2lYHJValp62XNqfH1GNioudhF9IWLx8g/ta5Xhp77NkUok7L14jxkbj5OjxTNX5HIZ3w9tRpWSZgD8ufkcizZ6a3VR9qEUChnjx7ZgzOhmyGRSvM/5M2L0RkLD4oSOppXMLIyYNLMzs5b1xcHZghfRScyatIOpIzcRHiKOLRIVDvfDE+m55gZbAmXEpmZRxMaIjQOrsbx3ZZwtxC6iL0ksXv6fNjU8mTWg5et1YH5Yd1SrtxKQSiU0qmTN0B61Adhx2Ifpiw+RVUgGX7ZvW4k/5vXCytKY4OAXDB+xgStXA4SOpbUq1yrGit0j+errBigUMm5eCuCbLkvZtPwMmRnZQscTifJFYlo2U/f70XbJRW6FJKCUqpnUrDjHxtSjXgkboeMVSmLx8gbNq5bk9yFtkMuknPR5zLerDmv1xV4ikdCzTWVmjGqFXCbl9JXHjPt1D0mFZDqxl5czK5b1x6uMZhzMjJ8PcOlKtLgezCfS01fQZ3gjlu8eQcXqRcjOymHLSm+GdvmTa+cfiV1JIp2hUqnZfj2EhvO92XT1GSo1tC5rzw8Vcvm6rgdKuXgJFYp45N+iUYViLBjaDqVchvedQMYuP0B6pnbfWTarU5oFUzphaKDk9oMwhk7bRkR0otCxvggrK2MWzOtJp46a/Xxu+sQy5YfdxMWlCJxMezm7WfPrin58/3s3rG1NiQiLZ/roLUwduUlcG0ak9e6GJdBx+WW+23uPuNQsitsas3VIdRZ2K4e5ntDpRGLx8g51vDxYNKIDBnoKrj4MYdjiPSRp+e7NVcq6sXxGd2wsjQl+HseQH7fyICBS6FhfhFwuY+TwJkz5tjUKhYQ7d0P5etg6fO88Ezqa1pJIJNRr7sWq/aPo2r8OcrmmK2lo16WsnHeUlCTd3yxUpFviUrOYsvcu7Zde4k5oAsZ6cn5sXZojY+pSq6i10PFEL4nFy3tUL+XK8tGdMTHQ4+7TCIb8sYvYJO1eN6W4uy2rZvaimKsNcYlpjPhpB+euPxE61hfToH4penTzwN3Nmri4VCZO3s7mLZcLxUDm/GJgqMegsc1YuWck1euVIDdHxb7NVxjUfhGHd90gN0d7x42JCodclZpNV5/RcJ43266HolZDp4pOnJlYn8F1i6CQiZfLgkT8bXyAckUcWDW+K1amhjx5/oKB83YSHqvd3S22ViYs/7nH67Vgvl/wN1sP3ig04xUsLfRY9EcvmjfT7Iu0dv15vvt+J3Hx2l2YCs3JzYqfFvdm5tI+uBaxITE+jSWzDjKi5wpuXREHSosKJp9n8bRfepGp+/1ITM+mlL0Ju4bWZEH3Ctia6AsdT/QGYvHygUo427BmQnccLE0JjUlgwNwdBDzX7r2DjAyU/D65A52alUethj83n2f2yhNkF5K7ZH19Bd9Oas3kia3Q05Nz0yeIId+s5cbNIKGjab0qtYuzbMdwhn3bCmNTA4KfRPH9sI38MHwjTx8Vjm5KUcH3IiWTSbvu0Hn5ZfyeJ2GiL+endmU4NKoOVd0thY4negexePkIrrbmrJvUnaIOVsQkpjJo/k5uBzwXOtZnkcukTBjYmDH9GiKVSDh01o+xs3aTmFx4xiq0aF6O5Uv74+FuQ3x8Kt9O2cFfq86SnV04irj8IlfIaN+zBusOjqFj75rI5TJ8Lgcwosdy5v24l+iIBKEjigqpnFwV6y8F0XCeN7t8wgDoVsWZsxMb0K+WO3Kxi6jAE39DH8nW3JjVE7pRvogDyemZDF+8h3N3tXv/HIlEQvdWlZj7bcfXM5EG/bCFoLDCs/iYu5s1y/7sS9s2FQHYvvMao8dt5nl4vMDJtJ+JmSHfTGzJX/tGUb+5F2q1mlOHfBnUfjGr/zhOsjioV/QFXQ+Ko82Si8w4+IDkjBy8nEzZO7wWc7qUx9pYnEakLcTi5ROYGemzbExn6pb1IDM7l4krD7L/kp/QsT5bzYoe/PVLTxxtzQiPSmTIj1u55KPdhdnH0NNTMG5Mc2ZM64CxsR6PHkXw9dB1HDt+t9CMBcpPji6WTPm9G4s2f0PZyu5kZ+Wwe8MlBrT+g+2rz5GeJu6XJMo/0UkZjN1+m24rr+AfmYy5oYJZHb04MKIOlVwthI4n+khi8fKJDJQK5n/TjrY1PclVqfl580lWHrqi9Re5Ii7WrJ7Vi4qezqSlZzF57n427Lum9a/rY9SrW4rVKwdRrqwL6elZzJl3hJ9+2U+S2EKQJ0p6OTFn9QB+WvwV7sVsSUnOYP2fpxnQZiH7Nl8mS8vXUxIVLNm5KlZfeEqj+efY7xuORAK9qrtydkIDvqruhkwqETqi6BOIxctnkMukzOjTjEEtqgGw8vBVftl8Squ3EwAwNzVk4Q9d6NhUM5B35faLTFt0iPRCtPy7ra0p8+f2ZPDA+shkUs5feMSgr9fgcytY6Gg6QSKRUL1eSZbuGM7kWZ1xcLEkIS6VlfOOMbCtZnp1thavai0qGC4HvqDVogvMPPyQlMwcKriYc2BEbX7tWBYLI6XQ8USfQSxePpNEImFE+9p836sxUomE/Zf9GLfsb1IztHsHY4VcxqTBTZg8pOnrLQW+mbqN8EKyIi+ATCalV8+aLF3cFxcXS2JjU5j07Xb+XHqSTLF1IE/IZFIatS7Pqr2jGDO1HdZ2pryITmLJrIMMareYY/t8yBEHTos+UkRiOiO23qLXqms8iU7B0kjJnM7l2DusFuWczYWOJ8oDYvGSR7rULcf8oW3RV8i5/CCYIQt2EZOg/UvPd2hSjiXTumJpZkhASAwDp2zmqm+w0LG+qBIl7Fm5bADt21UCYO9+H74eto6H/uECJ9MdcoWMlp2rsPbvMQyd3AoLK2OiIxJY+NMBBndYzNG9PmJLjOi9snJULPcOpPH8cxy+G4FUAv1qunF2QgO6VXVBKnYR6QyxeMlD9csV5a/xXbEwNsA/NJq+c7bxOEz793gpX8qZtbN741nMnqSUDCb8tof1e68WqhVp9fUVjBnVjN9+7YaVpTGhoXGMGrOJNWvPiVOq85BST0GHXjVYd2gsQ8Y3x9zSiMjn8Sz6+QCD2i3i4I7r4pgY0RudfxxDi4Xn+f2YP2lZuVRxs+DgqDr81N4LM0OF0PFEeUwsXvKYl7s9Gyb3wN3ekqj4FAbN38ml+8FCx/pstlYmLJvRnfaNy6FWw187LvHd/AOkFLIZItWqFmHNqkE0aVwGlUrNlm1XGDZiPY+fiAuv5SV9AyWd+9Zm/eFxfD2hBRbWxkRHJLJ09iH6t1nInk2XyEjX7q5ZUd4Ii09j6CYf+q69ztMXqVgb67GgW3l2Da1JGUczoeOJ8olYvOQDZxtz1k/sTpUSzqRmZDF22X52n78jdKzPplTI+fbrpkz5phlKhYyLNwMZOGUzgSHa37r0MUxNDfj+u7bMmNYBMzMDngbFMGLURtZvuCC2wuQxfQMlnfrUYv2hcQz/rjU29mbExSSzav5x+rVawLZV58R1YgqpjOxclpx+QpMF5zh2PxKZVMLA2h6cmVifTpWckUjELiJdJhYv+cTUSJ+lozrRtoZmKvWv284wd6c3ObkqoaN9traNyrL8px7YWZsQFpnA4B+2cthb+9e5+Vj16pZi7arB1KtbktxcFRs3X2LYiPU8ehQhdDSdo6evoF2P6qw9OIax09vj4GxBYnwaG5aepk/z+aycd1RcsbcQOeMfRfOF55l/8jEZ2Sqqe1hyZHRdprX1xFRf7CIqDMTiJR8p5DJm9G3GiHa1Adh29jbjlh8gOV37u1pKF7Vn3ezeVC/vTmZWDrOWH+fXFcfJzCpc4xEsLIyYPrUDU39o/79WmNEbWbnqLBmFaGr5l6JQyGnRsTKr949m8qzOeJSwIyM9i32brzCg7ULm/riHp4/FLjxdFRKbxqD1Nxi4/ibPYtOwM9Vjcc+KbP+6BiXtTYSOJ/qCxOIln0kkEga1rMbcIW3QV8i5dD+YAXO3ExaTIHS0z2Zuasj87zoxpFvt1/siDflhGyHhcUJH+6IkEgkNG5Rm3eohNGroiUqlZsfOawz5Zi2+d54JHU8nyeQyGrUuz7Idw5m5rA8VqnmQm6Pi9KE7DO+2jO+HbuDm5SeFanFFXZaelcuCk49p8sc5TvtHI5dK+KZeEU5PaEC78o5iF1EhJBYvX0jjSsVZPaEbNmZGPI2Io+/v27j5OFToWJ9NKpUwoHMNFv7YBYt/TKc+cemh0NG+OHNzQ378vh0zf+6MtbUJz8PjGT9xG/P/OEpycobQ8XSSRCKhSq3i/PbXABZv+YZ6zbyQSiXcuhrIj8M3MazrUo7vvyXOUNJSarWa4/cjabLgHItPPyErR0WdYtYcG1uPKa1KY6wnFzqiSCBi8fIFebrZsem7Xni62ZGQmsHwRXvZdU77B/ICVPFyZcPvfTTbCmRkM2PxEX5dcbxQrcr7Sq2axVm7ehBtW1cA4PCRO/QftIqz3g/FloB8VKKME9/P6cbag2Pp0KsG+gZKggOi+WPGfvq0mM/6JaeIiSo8iyxqu6cxKfRfd4NvNvnwPCEdRzN9ln9ViU2DqlHM1ljoeCKBicXLF2Zrbszq8d1oUaUkOSoVs7efYdbWU2TnaP8sFWsLYxb92JWBnWsgkcChs34M/mELgSEvhI72xRkb6TNubAv+mN8LFxdL4uNT+WXWAab8sIsIcWBpvrJ3smDo5FZsOj6BQWObYWNvRmJ8GtvXnKdfqz/4dfJO7t9+JhaSBVRaVg5zjvnTYuEFzj2OQSmTMrJhMU5NqE/Lsg5iF5EIyOfi5fz587Rt2xZHR02f5P79+9/7HG9vbypVqoSenh7FihVj/fr1+RlREPpKObMGtmR0hzpIJLDnwj2GLtpDXFKa0NE+m1wmZXC32iz6sStW5kYEhcUy6Pst7D95p1BeLMqXc2XVioH061sHhULG9RtPGThkNdu2XyVHBwrWgszE1ICu/euw/tBYfpzXnbKV3VHlqjh/wo8JA9Ywssdyju71EdeLKSDUajWH70bQeP45lnkHkpWrokFJG46Pq8fE5iUxVIpdRKL/ydfiJTU1lfLly7N06dIPenxQUBCtW7emYcOG+Pr6MnbsWAYPHszx48fzM6YgJBIJ/ZtXZeGw9hjrK7kd8Jzev23lfrBuzJSo4uXKhjl9qVHBnazsHOasPsUPCw6SlFL41uRQKuX061OHVSsHUqGCK5mZOaxa483Xw9Zx526I0PF0nkwuo06TMsxdM5BlO4bTomNllHpyAh9FsujnA/RuNo8Vc44Q8rRwrVdUkAREJ9N7zTVGbL1FRGIGzhYGrOpbhXX9q+JhbSR0PFEBlK+lbMuWLWnZsuUHP37FihV4eHgwf/58AEqXLs3Fixf5448/aN68eX7FFFTdskXY8G1PJqz4m+CoeAbN38l3PRvRoZaX0NE+m6WZIfO+7cT2wzdZvu0i3tefcD8ggmkjWlLZy1XoeF+cq4sV8+f05OQpP5avPENw8AvGTdhKk8Zl+GZIQ6ysxH78/FakpD1jp7dn4JimnDhwi8O7bhARFs/+rVfZv/UqZSu70axDRXKytX89Jm2QkpnD4tNPWHsxiByVGqVcyrD6RRnWoCj6CpnQ8UQFWIFqh7ty5QpNmjT51+eaN2/O2LFj3/qczMxMMjP/t25KUlISAN4PAmlXwzRfcuY1ZysT1ozvwoxNp7jgF8TPm07i9zSC8Z3ropB/3h9wdnb2v/4VQtcWFShX0pFflh4jNDKB0TN30atNZQZ0rvHZr+9TCH1MGjYoReXKbqzfcIkjR+9w6vR9Ll95Qt/etWnXtgIy2Zcdiib08RCCgZGC9r2q07ZHNW5fDeToXh9uXHjCPZ9n3PN5Rr02rmS3evvxUKvVhWbsRX6cH2q1moN3I/n9+GOikzXv341L2fB9y5K4WhoCKrILaAFZGP9e3ievjsnHPF+i/kIDESQSCfv27aNDhw5vfUyJEiUYMGAAU6ZMef25I0eO0Lp1a9LS0jAwMPjPc2bMmMFPP/30n8+XGvcrrYs7UsfBTGveZNRqNecDE/AOiAfA2VyPbhXsMNEvUDXmJ8vKUXHa5wV3AzUFpr2lHm1q2WFlqhQ4mXCiotI5ez6SqCjNVGorKz0a1rPHyclQ4GSFT0piFv63XxDgF0/HwaXQ0393Ya1WqVGrQSLlve8xapUaibijMQDhqbA7SEZgsuZ4WOur6eSuooxF4RsTJ/q3tLQ0evXqRWJiIqam72580Pqr4pQpUxg/fvzr/09KSsLFxQU1cDQkDn1re75vU1+QO/xP0Rq4dD+YaRtPEJaQyTqfGGb1b07l4s6f9P2ys7M5efIkTZs2RaEQftnsDu3g/I0A5q45Q2RcBptOhDOsZ206NCn3xYrMgnZM+vVTc+zEPdatv0BsbAa79z2jXt0SDBlUH1vb/G89LGjHQ1A9ISsri1OnTr31eFy/8BgXD2scnC1ffy735bYfr1rNVCo1UqmE7Oxc7t4I4p7PMx7eDaVUWWdad62CrYP5F3k5eSGvzo/kjGwWnQlks18ouSo1+gopw+oVYVBtN/S0qItI/Hv5r7w6Jq96Tj5EgSpe7O3tiYqK+tfnoqKiMDU1fWOrC4Cenh56enr/+fyoJjVYcfEO+249IDQ+kYVftcXC6M3fo6BpUKE4mx1tmPjXQQKev2DknwcY0b4W/ZpWRfqJd28KhaLA/KE1rlWacqWcmbnsGDfuhbBwwzmu+D7j+6HNsbH8cuM+CtIxad+2Mg3qe7J27TkOHfHl/IXHXLv+lB7da9C9a3X0v8B+LQXpeBQEbzoeWVk53L3xjJkTduLoYknTdhVo2bkKZhb/G1Sam5OLXClFIpGwbPYRHt4Lo0QZJ+o19eLqOX++HbKBrye0oF4z7RrX9qnnh0qlZu/t5/x29CEvUjQzu1p62fNjG0+czLXjPflNxL+X//rcY/Ixzy1Q67zUrFmT06dP/+tzJ0+epGbNmh/9vXpUL8fSvu0x0lNyM+g5PZdtIyBKe9YbcbU1Z8PkHrSpXhqVWs2S/ZeYsPJvktN0Y6VWG0sT/vi+C+P6N0SpkHPtTjC9J27g1GV/oaMJxszUgHFjW7By2QDKlXUhMzOHDRsv0n/gKs6cfVAop5oXNEqlnGHftmLdobG06lKFcyf86NFoDiO6L+PI7ptkZeUgk8uQSCRcOfuQ4/tvMXRSS8b82JYOX9Xkt78GMOK71pQo4wSg879Tv+eJdF15hYm77vAiJYsiNkZsGlSN5b0ra3XhIhJevhYvKSkp+Pr64uvrC2imQvv6+hISopkeOmXKFPr27fv68UOHDuXp06dMnjwZf39/li1bxs6dOxk3btwn/fx6pTzYOqw7zhamhMYl0mv5DrwfPv3s1/WlGCgV/NSvOT/0aoxCLuPc3ad8NXsr/qHRQkfLE1KphK4tK7H+t96UKmJHcmoG0xYdZtqiQyQmF74p1a8UK2bHH/N7Me3HDtjamhIdk8TMX/9mzLgtPPQPFzqeCM1CeJ371mb5zhEs3zWCqnVKsGfjJdpX/4VTB32JiUrkzJG7IJFw1dufAW0XMvvbnYQGv6Bmw9LYO1kA7x8ro60S0rKYut+Pdn9exOdZPIZKGd+1LMWxMfWoW9xG6HgiHZCvxcvNmzepWLEiFStWBGD8+PFUrFiRadOmARAREfG6kAHw8PDg8OHDnDx5kvLlyzN//nxWr179WdOki9lZs31EL6p6OJOamcXITQdY5X1da+54JBIJneuWY93E7jhamRL2IpH+c7az65zuLPrm7mzFX7/0ZGDnGsikEk5dfkTviRu4cDNA6GiCkUgkNKhfivVrhtC/bx309RX43Q9jxKiNzJr9N1HR4jL3BYV7MVv6j2rCX3tHMn/9IMpVcScmIpHbVwNxK2pDkRL2fPdbV9LTstiz4RK5uSqd+dv9/1QqNduvh9Bo/jk2XX2GSg1tyztyZkIDhtYvilJeoBr7RVosX8+kBg0aoFar//PxatXc9evX4+3t/Z/n3L59m8zMTAIDA+nfv/9n57AwMmDVoE50r14OtRoWHr/EpO1HSM/Snqlunm52bJnyFfXKFiErJ5fZ28/w3ZojpKRnvv/JWkAulzG4W21W/tILdydLYhNS+XbuAX7+8yhJKbrRVfYp9PUV9O1Thw3rvqZ5Uy8kEjh95gF9+//FX6u9SUktvMemoJHJZXiWd8XWwZzwsDiys3MZN70DzTpUwrO8Kz0G1+P4/lsEPYnSyRaXO6EJdFx2ie/23iMuNYsSdsZsG1KDJT0rYm+mL3Q8kY4pNGWwQiZjWofGTO/QGLlUytG7j+mzcifh8R8+ulloZkb6/DGsHeM710MulXLS57FOdSMBeBazZ91vffiqbRUkEjh24QG9J27g0i3t6e7LDzbWJnw7uQ3Ll/anQnlXsrNz2b7jKn36rWTv/ptkZ4tbDRQEKpVm1tGzgGic3axwLfK/LhJLaxPMLY1ITtT+bUD+KS41iyl779Jh2SXuhCVirCfnx9alOTy6LjWLWgkdT6SjCk3x8kq36uVYO7gzlkYGPAyPptvSrVwLDBU61geTSCT0blKZ1RO6YW9pQmhMAv3nbGe7t6/ONEXrKeWM6F2fFT/1wNXBghfxKUz6fd/LVpjCOxYGoERxe+bP7cnMnzvj6mJFYmI6fy49xcDBq/E+568z54C2kko1b6l2juYkJ2UQFZ7w+msXTt7H3skCxctpwdr+u8pVqdl09RkN53mz7XooajV0qujEmYn1GVy3CIovvNiiqHAplGdXZQ9ndozshaejLfGp6QxZu4f1F3y06s2kXBEHtn3f+3U30pwdZ5mw8iAJOnRxL1vSiQ1z+tCjdeXXrTC9xq/n7LXHQkcTlEQioVbN4qxZNYixo5tjYW7I8/B4fp65n+GjNnLrdrDQEQu9+s29sLY14dheH4IDojmx/xZbVnpToXoRPErYA/8drLtk1kGO7fMhIS5FiMgfxedZPO3+vMjU/X4kpmdTyt6EXUNrsqB7BWxNxC4iUf4rUOu8fEmO5qZsGtqdn/ad4u/bD5l75Dx+YVH83LkphkrtmLv/qhtp29nbLNp3Ee87gTwMiWLmgJafvKhdQaOnVDC6bwMa1ijB7BXHCX4exw8LDtKgWnHGD2yEtUXh3Q9IJpPSrm1FmjT2ZOfu6+zcdZ1HjyKYOHk7lSu5M2RQA0q8vFCKvhy1Wo2JmSH9RjZm3ZJTnD16F7eitjTrUJF+Ixq/8TmhwS84vOsGoClqSpdzpkaDUlSrWxK3ojYFZozMi5RMfjvqz26fMABM9OVMbFaSr6q7IhdbWkRfUKEtXgD0FXJ+7docL2c75hw+z9G7jwiMjmXhV21xszYXOt4HkUgk9GpUiUrFnZmy+gjPouP55o/dDGpZjSGtaggdL8+ULeHI+t/7sG7PVTb/fQPv60/wuR/CqD71ad3Aq8C8uQvB0FCP/n3r0q5tJbZsvczBQ7fxuRWMz631NKhfigH96+Hyj9VgRfnr1blYvmoRFm78mtTkDDIzs7G0NgHevC+SoZEefYY34qq3P08ehPPgTigP7oSydtFJ7J0sqFavBDXqlcSrsjtK5Zd/285Vw4Yrz1h0JpDkjBwAulVxZnKLUlgb/3eRUJEov32xvY2+lKSkJMzMzHjx4gVWVh8+WMwnKIxxWw8Tm5KGib4ev3ZtTiPPovmYNO+lZWTx+86zHLzyAIAKRR2Z3rsJvtcu0qpVK51ZDfJJcDSzV57A/6lmNebKXq58O6QJzvYWH/T87Oxsjhw5olPH5J8iIhJYv/ECp07fR63WrKfTtIkXfXvXxuENy9Lr+vH4WEIfj5ioRK56P+L6+Uf43ggiOyvn9df0DZSUr+pO5VrFqVK7OI4u+V+UXnoSxcRtN4hI0xRcXk6m/Nzei0quH/b3pmuEPj8Korw6Jq+u3x+yt5FYvPxDVGIK47cewjckAoAhDaoyskktrWsOPXrdn1+3nSY1IwsjfSXNSpjx3eDuOvWHlpOrYucRH1btvExmVg5KhYz+nWrwVbuq793HqrC8+TwNimbN2vNcuapZL0cmk9KqRTl6f1ULG5v/vTEUluPxoQrS8UhPy8T32lOunX/MtQuPiH/x7/EwDi6WVK5RlEo1i1G+qgdGeTjeJDopg1+PPGS/r2ZhRHMDBZNalKRHVVdkhXiTyYJ0fhQUYvGSBz6neAHIysll/tHzbL7sC0C1Ii7M7dESaxOjdz+xgHn+IpEf1x3lzlNNIda8cgm+79UYE0PdGkwXFpnA3DWnuHH3GQAezlZ8O6Qp5Uo5vfU5he3N5+HDcNZtuMBNnyAAFAoZbVpXoGf3GlhbmxS64/E+BfV4qFQqgh5H4XMlgJuXnvDAN5ScnP9NkZfKpJQs40SlGkWpWKMIJcs6o1B8fBdTdq6K9ZeCWXjqMalZuUgkUNNWxcKBjbA10673wfxQUM8PIYnFSx743OLllaN3HzF1z0nSs7KxNTViXs/WVHZ/+wWxIMrJVbH6yFVWHb2GWg32lib80r+FzgzmfUWtVnPioj+LNp4lIUkz26p943IM61UXU+P/FmuF9c3n7r1Q1q47z917mqUBlEo5bdtUoHOnyly7er7QHY+30ZbzIy01kzs3grh9NRCfKwE8fxb7r6/r6SvwquRGhaoelKtahGKlHV7vev02lwNeMO3v+wREa1p4KriYM611SULvXCrwx+NL0Zbz40sSongp1AN236VluZKUsLdm7JZDPI2OY8CqXYxtXof+dSp/8s7OX5pcJmVQi6rkxoVy7EkKz2OT+PqPXfRtWoVhbWqi/IS7soJIIpHQvG5palRwZ9mW8xw868eB03c5fzOAkb3r06Ju6UI9oPeVcmVd+GN+L27ffsa6DRe4/+A5e/be5OAhXzxLmVC9egr2HzhuSCQ8QyM9ajYoRc0GpQCIjkjg1tVAbl8NxPd6EInxqfhcDsDncsDrx5ep4IpXZTfKVnKneBnH1y0zEYnpzDz8kMN3NS21lkZKvmtRii6VncnNzSH0jjCvUSR6G7Hl5T1SM7OYse8UR+48AqB+KQ9+7doCcy3pfnlVEddv1IRF+y9x4PJ9AIo5WTOzfwtKOOveJmm3H4Qxd/VJgp/HAVDR05kJAxtTxMUaEO+cQNNaddMnmA0bL/DgoWZMg0Iuo2XLcvToXgN7OzOBEwpHF84PlUrFs8AYfK8F4nsjCD+fZ6T+v202lHpyins5k1DUkYupKjJz1Ugl0KeGG+OblsTMUPPadeF45CXxePyX2PJSABnpKZnTvSVVPZyZfcibc/5BdFmymfk9W1Pe1UHoeB/MSF/J9D7NqF+uKL9sPknA8xf0/m0rw9vWok/Tysik2jUo+V0qejqzYU5fth26ybo9V7n9IIx+326iR+vKDOhcA4VMbIWRSCRUreJBlcruXLsewJKlR4iISOfvg7c5fOQOzZt60bNnTZwcxZYYbSSVSvEobodHcTs69q5Fbq6KoCdR+PkEc+/WM/xuPSNcKuegoSlZSZpxMwbxyVRMTsLSMJdrZFO6vAvObuLy/qKCSWx5+QgPw6MZv/UwIbEJyKVSxrWoQ9/alQp0N9KbKuK4pDRmbj2F951AQDOlekbf5rjamguYNH9ExCSxaMNZzt/QNJ3bWhkz4qu6pMY8pnXr1uKdE5pz5PDhwzi7lGPb9mvc9tUMfpZKJTRq6EnP7jXw8NC9Frq30fU767D4NH459IDj9zVLDRiixi0sCpXfM/7/O5mxqQElvZyQKFNp2a4enuXdsLAqvAtDgu6fH59CbHkp4Eo72rJrZC+m7T3J8XtPmHvkPNcCQ5nVpRmWxoZCx/tglqaGzP+mLX9fecC8Xd74BobTY+YmRnesQ7f6FQp0MfaxHGxM+W1iey75BLJg3RkiYpKYvvgobnYGeJaPpYSHuAItaFpiypdzoUrlIvjdD2Pzlstcv/GUU6fvc+r0fWrWKEavnjUp46ldg9ZF/5ORnctf55+yzDuAjGwVMqmE/rXcGdOkOKb6CuJjU3hwJ4SHd0J5eDeUJw/CSUlKfz1m5qb3DgCs7Uwp4elEMU8HipVypGgpB6xsTIR8aSItFhWewD2fYO7dCubW1Ucf/Dyx5eUTqNVqdl6/y++HzpGZk4utqRG/d29JtSIu+fLzPsf7KuLw2ERmbDzJzceaGShVSjgzvU8znKx1b8xDZlY2m/ZfZ/PfN8jKzkUmldClRUUGda2FsWHhXSX0befIo0cRbNtxlQsXH/HqXaJcWRd6dK9B9WpFdHYQtC7eWZ/xj+Kngw94FqvZ0bq6hyU/t/eipP3bi47s7ByCHkfhdzsY75M3SE+SEhYc+8Y94CysjSlWyoGiJR3wKGFHkRL2OLpavXd2kzbSxfPjc33oMcnNySUoIJqHd0J5cCeE+7dDiI5IeP31nNxMTvvNEadK51fx8srjyBdM2HqYpzFxSCQwtGF1hjaqUaAWtfuQk0qlUrP7wl0W7j1PRlYOBnoKxnasS+e65XSqFeaVkOcvmLpgN0/CUgGwMDNkWM86tKrvpZOv933ed46EhMayc+c1TpzyIydHBYCHuw3du1WnUcPSyN+zKKC20aWL07PYVH4++IDT/tEA2Jnq8UNrT9qWc/jg4vOfxyMnW0WgfwSP7j8n4GEEgf4RhAW/QKX672VEqSfHragtHiXscS9qi3sxW9yK2mJpY6LVha8unR955U3HRK1WEx2RyJMHz3n8IJxH98J45PecjPSsfz1XKpNSwtORspXd8ShlTeOWlcXiJb+LF4C0rGxmHzzL3puaWTyV3B35vVtLHC3efeC/lI/5QwuNSeCnTSe49eQ5AFVKuDCtdxOcbcy/QNIv59UxsXEpw+JN5wkJjwegVBE7xvZr+M4F7nTRh54jMS+S2b3nBocO+5L+8g3I1saUTh0r07pVBYyMdKP1ShcuTulZuSz3DmDF+adk5aiQSyUMquvBqEbFMdb7uNEC7zseGelZBD2JIuBhBE8fRxL0OJKgJ1FkZmS/8fsZmxrgWsQGZ3drXNytNf96WGPvaIFcUfALYV04P/JaWloG2zfvx8W+BKFBLwh8FEnAw3AS49P+81hDYz1KlXXGs7wrnuVdKF3eBYOXLd/iInVfsHh55ZCvPz/vP01qZhYm+nrM6NiYFuVKfrGf/zYf+4emUqnZ4e3Lkv0XycjOQV8pZ1T7OnRvoDtjYf55TJBI2XX0Nmv3XCHt5QW5Sa2SDP+qHvbWBaMAzW8fe46kpGTw96Hb7Nl7k/h4TeuVoaGS1i3L07FjFa2fZq3NFye1Ws2JB1H8fPABzxM0CzbWKWbNjHZlKGb7aQNtP+V45OaqiAyL5+njSIIDongWGE1wQDThIbFvbKUBkMml2DmY4+RqhaOrFU5uVji6WGLnZIGdo7kgG1K+iTafH58rKyuH8JBYQp7GEBoUQ0jQC54FRhMWFPO6VfafZHIp7sXsKOHpSIkyTpQu74JrERukb5ndKg7YFUCbCqUo72rP5O1HuRsayYRtR7j4+BlT2jbASE8pdLwPJpVK6NmoInXKevDL5pPcfBzG3F3enLz1mKm9m+Jhr1u7EyvkMnq1rUKLuqVZueMSh87e49TlR5y/EUivtlXo3b4qhvra8/v7EoyN9enVoyZdOlXl5Kn77Np9nZDQWHbtucGefTepV7ckXTtXo3RpR6GjFipPY1L46eADzj2OAcDRTJ+pbTxp4WX/xbtpZDIpTm6aAqRu0zKvP5+VmU1YcCyhwTGEBr0gNPgFYUExhD2LJTMjm/DQOMJD4+DSk399P4lEgpWtCQ7OFtg5WGDraIatg/nLDzNs7MzQ0y9chUR+yUjPIjoikYiwOCJe/j6eh8QSHhpHVHgCqtz/FikASj0pxUo7UaS4PR4l7ClW2hGP4rYo9fLn9yK2vOSx7Nxclp++xl/emiX5Xa3MmdO9JWVdhJnV8jl3CSqVmr0X77Jo30VSM7JQymV83boGfZpWRiEr+M27b/OuY/I4OJpFG85y+0EYANYWRnzdvQ4t63vq1Fo4//S5d5IqlZrrN56ye891bt1+9vrzZTyd6NypKnXrlNCqgZvadmedlpXDkjMBrL7wlOxcNUqZlK/rFWF4w6IY5kFrxZc4HiqVitiYZMJDYnn+LI7w0FjCQ+KIeB5HRGj8f8ZJvImpuSFWtiZY25pibWeGlY0JFtbGWFqbYGlljIW1MeaWRp99MdW28+OfsrJyiH+RQmx0Ei+ik3gRlURsTBLREYlERyQQFZ5AQlzqO7+HobEerh42uHjY4OphjWtRW5zdLblx69JnLz8htrwISCGTMbpZLWoVd+XbHUcJiU2g94odDGtcg8H1qxaowbzvI5VK6FKvPLW9PJi15TSXHwTz54FLnPB5zLTeTfB0071pxiXcbflzWjfOXQ/gzy3nCI9K5NcVx9l17BajetenSlk3oSMWOFKphBrVi1KjelECA6PYvecGp88+4P6D59x/8BxbG1PatatI61YVMDM1EDquzlCr1Ry5F8nMww+ISNSsntugpA3T25bBw1q7NlCUSqXY2GlaUMpXLfKvr6nVahLj04h8WchERSQQE5lIdHgCUREJREckkpGeRVJCGkkJaQQ9jnrnzzIwVGJmYYSpuSFmFoaYmhtiYmqAiZkBxqYGmJgaYGSij5GxHobG+hga6WFkrIeBoV6BGZOTk51LWmomqSkZpKVo/k1NziA5MZ2kxLSX/6aTlJBGQlwKCbGpJMSl/meV5bcxNNLDzullF56LJY4v/3VytXrjgOvs7Owv3rontrzko8T0DH7Zf5qjdx8DUMHVgdndWuBqZf7FMuTVXYJarebwtYfM332OxNQMpBIJvRpVZFjbWhjkU7NgfvnQY5KVncPuY7dZv/caKWmZANSs4MHwr+pR1NX6S8XNd/lxJxkbm8LBQ7f5+9BtEhI0g/aUSjmNG3nSoX0lihcruIWvNtxZB0QnM/3v+1wK0GzG6GxhwPS2ZWhS2jbPLyIF/Xio1WpSkzNetyTERCXxIiqRuBcpxL1IJv7lvwmxqf/ahftTyORS9PUVIFFhZmGCnr4CpVKOQilHoZCh1JMjV8iRyaTI5NLX/0olEnj5e3n161GrNS1OuTkqVCo1qlwVOTkqsrNzyMnOJTsrh+ysXLKycshIzyIzPZuMjGwy07PIzv7016FQyLCwNsHazvRlK5XmXzsnc+wcNeOLjE30P+o8Ehep0zFmBvrM7dGK+qWKMPPAGXxDIui8eDNT2jagY+UyWjVdUCKR0KaGJ7U83Zm3y5tjNx+x+fQtTt8O4Puejajt5SF0xDynVMjp1bYqreqXYe2eq+w7eYcrvkFcuxNM6wZlGNytNjaWhXu10bexsjKmf7+69OpZE+9zD9mz7yZPnkRx9Nhdjh67SxlPJzq0r0y9uiVRFJC7WW2QkpnD4tNPWHsxiByVGj25lGENijK0flH0C+lxlEgkGJtqWk3ci9m99XGvipzE+DQSE1I1/8ankpyQRvLLVouUpHSSk9JJTc4gLTVT85GS+XrmVG6OitQUzY1ManLcF3l976Knr8DI5H+tQ6Zmhpj8oyXJ1NwQc0sjLKw0XWbmVsYfXZgUVGLxks8kEgltK5amsrsTU3Yd42bQc6buOcnZh0+Z0bEJVlq0Mi9oVuf9dVArWlUvza/bThMRl8SopftpXqUkE7vWx8pUu5qrP4S5qSHjBzSiS/MKrNh2Ee/rTzh41o+Tl/3p2aYKvdpWxchAHNT7JkqlnGZNy9K0iRf3Hzxn/4FbnDvv/7pLadkKI9q0Kk/rVhWwtS0cs7s+hVqt5u874cw6/JDoZM3Fs0lpO6a39cTFUrveQ4TyzyLH6SP3bMrJziU9PYuM9CxSk9M5deosVSpXIzdbTXZ2DlmZOWRn55KVqWk1edWikpur+VCpNINc/38/h0wqQSqTIpVKkEqlyBUyFAqZpiVHKUOhkKPUk6NvoEBPX/nyXwUGhkoMjfSQ6dgaSx9DLF6+EEcLU9YO7sL6Cz4sPnmZMw8C8X0WzvSOTWhSppjQ8T5aHS8Pdk/ty4pDV9h65jbHbz7i8v1gRnesQ8faZXVmWvU/uTpa8uuEdtz1f86fW87h9ziCdXuusu/EHfp1qkHHpuVQKsQ/qTeRSCR4lXHGq4wzw75pxOEjvhw85EtsXAqbtlxmy7Yr1KhelLZtKlKlsodWDfDNb/6RSUw7cJ/rQZo7fXcrQ6a3LUPDUrYCJys85AoZJgrNeBhzS0NsHAwpU8G1QHajFRbiO8QXJJNKGVS/KjtG9KK4nRVxqemM2XyQKTuPkZT+YQOpChJDfSXju9Rn47c9KeViS3J6JrO2nmbg/B08DosROl6+KVfKiZU/92TW+La4OliQkJzOog1n6TFuHUfP3SdX9eaphCINKytj+vapw7Ytw5j2Y3sqVHBFpVJz+UoAU37YRe9+K9i85TKxsSlCRxVUYno2M/6+T+vFF7keFIe+Qsqk5iU5NraeWLiICj2xeBFAKQcbdo7sxaD6VZBKJPx9+yEdF23i8pNn739yAeTpZsfGb3sysWt9DPUU3H0awVezt/DHnvOkZbx/iqM2kkgkNKxegs3z+/Pt102xtjAmMiaJX5Ydo9/kTVy4GfDGPWBE/yOXy2hQvzQL5vZi/ZohdOlcFRMTfaKikli7/jzdey1l2oy9XL/xlNy3rC2hi1QqNbt9wmg835v1l4PJValp6WXP6QkNGNGwWKEd2yIS/ZPOFi+rrvuQU4DvgJVyOeNb1GXjN91wsTQjMjGFIWv3vl6lV9vIZVJ6NarE3hn9aVKpOLkqNZtO+dDl542cvv1EZy/kcpmU9o3LsXPRQIb3qouJkR5PQ1/w7dwDfDNtGzf9QoSOqBVcXa0YPrQxO7eN4LvJrfEq44xKpebipcd89/1OevdbwcZNF4mKThQ6ar7ye55I15VXmLjrDi9SsihiY8SmQdVY3rsyTubiNHOR6BWdLV7+uu5D7227eJ6YJHSUd6ro5sjeMX3oVbMCADuu3aXjok1cCwwVNtgnsjU3Zs6QNiwe0QEnK1Mi45OZ9NchRv25n5DoeKHj5Rt9PQW921dj1+LB9GlfDX09OX6PIxj9yy5G/bKLe4/DhY6oFfT0FDRrWpbFC3uzZtUgOnWs8ro1Zv3Gi/TqvZzJ3+3grPdDsrJyhI6bZxLSspi63492f17E51k8hkoZU1qW4tiYetQtbiN0PJGowNHZ4sVQKedmWDht1m3m8MNHQsd5J0Olgh/aNWTN4M44WZjyPD6Jgat3a20rDGgG9O6c1pfBLaujkMu4/CCYrr9sYumBS6RnvXnDNl1gaqzPsF512bV4MF1aVEQhl+HjF8I3U7cxYfZe/J++ewEt0f94uNswcngTdm4bwZRv21CxghtqNdz0CeKXWQfo2uNPFi05waNHEVrbsqdSqdl+PYRG88+x6eozVGpoV96RMxMa8E39oijlOvsWLRJ9Fp39y9jSvQvlHexJzsxkzN9H+PbwcVIKeCFQo6gr+8b0oXv1csD/WmGuBmhn14OBUsHwdrXYNbUPNT3dyM7JZc2x63T+aQNnfHV7TIiVuRHjBzRix6KBtG1UFplUwhXfIAZO2cy3c/cT8Ex3BzTnNT09BU2beDF/bk+2bBxK3961sbUxJTk5gwN/32LYyA0M/notO3ddIy5Oewb53glNoOOyS3y39x5xqVmUsDNm25AaLO5ZEXszfaHjiUQFms4WL85mpmz/qhsjalZHAuzxe0C79Zu5/TxC6GjvZKSnZFqHxqwZ1BlHc00rzKA1e5i+9yTJGZlCx/skrrYW/DmyI/O+aYu9pQmRcclMXHmQkX/uIyhS+IWe8pO9tSlTvmnGtj8G0KKuJ1KJhAs3A+k7eSM/LDhIYIhYxHwMBwdz+very5ZNQ/l9dncaNfREqZQTFBzDir/O0q3nUqb8sIvTZx6QkVEwW/jiUrOYsvcuHZZd4k5YIsZ6cn5sXZrDo+tSs6iwq4KLRNpCpxelUMhkjKtXi9oerkw4eIyQhER6bNnBiFrVGV6rOvICvNFejWKu7B/bhwXHLrL96h123/DjwqNgpnVoTIPSRd7/DQoYiURCowrFqOnpxpqj19l0yocrD57R/ZdN9GhYgSGta2BioCd0zHzjbG/BtJEt6duhGmt2X+H0lUecvfaYs9ce06B6cQZ2rkkxN3Fsw4eSyaRUreJB1SoepKRkcNb7IcdP3OPBw3CuXQ/k2vVADAyU1KtTgiZNvKhQ3lXwtWNyVWq2Xg9h3vFHJKZrCqtOFZ34rlUpbE3ElhaR6GMU3Kt3Hqrm4szhgb1p51mKXLWaxZeu0n3zDoLjE4SO9k5Gekqmtm/E+iFdcbUyJyophREbDzBp+xHiUtKEjvdJDJQKRravza6pfalXtgg5KhWbT9+i4/T17L/sh0qlu11JAO7OVvwytg2b5valYfUSAHhfe0LfyRuZMu8Aj4OjBU6ofYyN9WnbpiJ/Lu7L+rVD6PNVLRzszUhPz+L4ST8mfbudHl8tY/mK0zx+HClId6XPs3ja/XmRqfv9SEzPprSDKbuG1mRB9wpi4SISfYJCUbwAmOrrs6BtSxa0bYmJnh53IiJpt24z233vFfixF1WLOLN3dG8G1K2MVCLhyJ1HtP1jA4duPyzw2d/G1dachcPbs2RkR9ztLIhLTuPnTSfpO2cbdwJ1f2ZOUVcbZo1vy6a5/WhcsyQSCZy7EUD/bzfx7dz94sDeT+TqYsWA/vXYvHEoi//oTdvWFTAx0Sc2NoVde24wdMR6+g9axabNl3j+PP9nv8UkZzJx1x06L7/M/fAkTPXl/Ny+DAdH1qaqu2W+/3yRSFfpdLfRm7TzLEUVZ0cmHT7OtZAwfjx+itMBgfzaoik2xgV3Xx4DpYKJrerRvGwJpu09yePIF3y78xgHff2Z1qERThZmQkf8JLXLuFOtZB+2e/vy1+GrPHgWxYB5O2hRpSSjOtbBwVK397sp6mrNL2PbMDCsJuv3XuXUZX8u3Azkws1AalRwp2+H6lQo7Sx0TK0jkUjw8nLGy8uZEcObcOPmU06fecDlKwGEhsaxbsMF1m24QPHidjSsX5oG9Uthb2+eZz8/J1fFpqvPWHDyMckZmind3ao4M7lFKayNdbd7VCT6UgpNy8s/OZqasqlHF75rUBeFTMbZwCBard3IUf/HQkd7r7Iu9uwc2YtRTWuhkMm4+DiY9n9sZP0FH3K0dBVShVxGnyaV2f9TfzrU8kIigWM3H9FpxnqW/X1ZZ1fp/ScPZyt+Gt2aLfP706KuJzKphKu+wQyfsYNh07dz1TdYa1vZhKZUyqldqwTTfuzAnp2j+G5ya6pU9kAqlfDkSRR/rfamV58VDB+1gUuX3/0e8L7fgUql5trTWFov8OaXffdIzsihrJMZ+4bXYk6X8mLhIhLlkUJZvABIJRIGV6/CgX69KG1rQ3x6BqMOHGb8waMkZhTsfYYUMhlDG1Vn35jeVPFwIj07h7lHztNz2TYePNfe7gYrUyOm9WnKlilfUbm4M5nZuaw+eo0OM9Zz4HLh2DPI3cmKaSNbsn3hQDo0KYdCLuOO/3PGz97DwCmbOXvtsc6PC8pPRkZ6NGtaljm/dWf3jlGMH9uCihXckEol+PtHkJr67hl9Eolmw9FXuwX/U1RSBuO236b7X1eJvheM250HVAgOoqUiE9OcgjnzSSTSVoW2eHmlhI01e/r2ZETN6pp9hh7402rNJs4/DRY62nt52FiybnBXZnRsgqm+Hg/Co+m+dBtzDp/T2sXtAEq52PLXuC7M/boNztZmvEhM5adNJ+g9eys3HmnnysMfy8nOnMlDmrJ7ySC6t6qEvp6cR0HR/LDgIL0mrOPQWT+yc3KFjqnVzM0NadO6AvPn9mTnthGMHtmUWjWLv/GxmZnZ7D/gg9/9MEAz2+nV7KWMrBxWegfQaJ43B+6EI5GAqySHhg096dOtOs+eveDroWuZ/tPeQr/ZpEiUVwrdmJc3Ub6cUt2wmAeTDh8nKC6egbv20b28F981rIeJXsFt6pVKJXStVpYGpYvw+yFvjt59zIaLtzjh94Tv2zakbnFXoSN+EolEQuOKxanr5cGOc3dYdeQaj8Ji+GbhbuqW9WBMx7oUcdD9NTFsLE0Y068h/TpWZ9ex2+w+dpuQ8Hh+XXGcVTsv0b1VJdo3LoeRYcE9R7WBpaUxHdpXBiA7+7+tJJmZOTwJiOLPZacw0FdSoYIrzZp6IbWzZPrBB/wfe2cdH3d9P/7n+eVycc/F3a1tkrorNYrD0LEhGxPYbz4YzNm+gw3YgOEMhrRAW+rUJU2apHF391w8578/rklb6m3kEu75eNzjc/mcvT+vvOX1eb1fUtFmVkoS/Jx4akEAf3+2guQZAaxaGcctm2ah0xloae3BwcFan8iKlbHgG295OZcEby+2PXAPD8xIBODj3AJueut9jtdYfrVnNztb/nbXTfz7/o2onOxpVvfxxPvb+NGHO1Brpm4NGKlEzL3LZrD1uQe5fWE8IqGAo/nV3P679/n9B1/R0TMw2U2cEBztFXzn9rl89vJ3ePzu+bg62dLe1c/L/z3Cxsdf518fHqGj23pXP17Y29vw/55aw+ebf8gvf7EOgUTMc8/v4NePv8ngkVy8urr4/dpIPntsDqL+QUQiIW+/e5Tnfv8FObm1iMVCfH2cEYutFaGtWBkLrMrL17CRSPj1skV8cNdt+Do60NTbx/0ff8bTe/ZbfHkBgAURgWz90X08vHAWYqGQQyXVvJBbz7vHstEZpu42g5PShp/fuYRPf3Mfi+ODMZpMfHYsnw3PvM2rX6Z9I5x6AWwVMr61IZnNLz3MLx9dgb+3MwNDWv679RS3fP8N/vjqHqobOie7mdMWqY2E08PwqUZGeUQozRHBhIR74dvXS6jUhFAowEflzG9+tYGf/3QttrYy3njrCOXlU9cXzYoVS8SqvFyCFD8fvnzwW9yTGA/Ahzl5U8YKYyOV8ONV89jyg3tI8vdGZzTxwt4T3P7yh2TVNE52826IAE9n/u/R9bzx5G3EBHgypNHx+o6TbHzmbTYfyZ3SCtq1IJWIWbs4lg/+7wH+8v82EBfujU5v4MuDBdzz1Ds89efPyCyos0YojSGHy9pZ/eJRnt9dypDOwKwgFz77xUre+8ttfPK/7zFrpjnztZ+fC/FxfiQm+PPtBxdi0Bv4+NN0NBqr064VK2OFVXm5DLZSKc+uWML7d96Kj4M9jb293P/xZ/xq9z76NJZfZyjEw5U3H7qZW4LccFTIKWvp4L7XPuEXn+ymo29qb7ckhfrw7k/v5C8P32R26u0d5I//O8Btz73H3qzSb8yiLRQKmD8zhFefu4vXnruTRcmhCASQdrqaH/zuUx74+fvsOlxode69Aeq7Bnnk/UzufyuDqo4BXJUy/n57PJ88Mpso77N5iIRCwQWfdXRUsHpVPDk5tchkkolsthUr0xqr8nIVzPb3ZcdD93JvUgJg9oVZ9cZ7HKysmtyGXQUCgYAZ7nZ8/sQ93DrLnENl2+li1v79XT44kTNlc8OA+dqWzwhjyzP389PbF+GktKGuTc3P39jJt/78IenFlm8lG0tiw1X88an1fPTCQ9yyMgG5TEx5TTu/+9duNn3vP7y95STq3qlZVmIy0OgM/HN/Ocv+fpg9ha2IhAK+PS+Qgz9ZyKYkn9Gw6RFaWnsoKGhAqz3fx6y8ogUvbyfgynlirFixcnVYlZerxFYq5Znli/nw7tvwd3Kktb+f72zeypPbd9E9NDTZzbsiTrY2PLtpOR8+eifRKnf6hjX8cftB7njlQ7Kn+FaSRCzizsWJbPvdQzxyUyoKmYTiujYe++dnPPaPLRTWtEx2EycUXy8nnnpoKV/867s8etc8XJ2UdKoH+M8nx9n4+H/48+t7qarvmOxmWjQF3QJWv3SCv+8rQ6M3khrkzK4fzuc3a6Owk1/cgtKjHuStd4+wecspWlp7aG/v5f3/HufgoWJWrYgFuEDhASgpbeb4ifIr5pixYsXKWayh0tdIsq/ZF+Yfx9J461Q224pKOFZTyzPLFrMmIuyik5MlEefnxf8ev4vNp/J5cc9xSprbufe1T1ifGMmTq+bhZq+c7CZeN7ZyKY+snc3tC+N5Y1cGnx7JJb2kjvSSOhYnhPD4utkEe7tOdjMnDHulDfdtTOHutTM5cLKMj3ZkUVLVyrb9+Wzbn8/MGD9uXZVIcpzvZDfVYqjtHOC32wo4WCoChvCwl/Grm6JYF+d1xbHt7+/KwvkR7NiZw38/PIGfrwsarZ7Vq+JYvSrukp/7/ItM9n1ViFAoICpSxYwZAcxIDCAiwssanWTFyiUQmKaZHbO3txcHBwc6OjpwcRnfPCC5TS38fNdeyjvM0R1LQoJ4dvkSvOztxvV3rwWdTsfOnTtZs2YNEsn5d4xd/YO8uOc4n2UVYDKZq1g/tiSFe+YkIp0Gk2ZTZw+vbk9jR0YxJhMIBLB6VgTfXjmLvFPHLyqT6YzJZCKvtJGPd2Rz5FQFxjND39PNnggfCU89cgsuTpbTdyeSIa2Bfx+q4NUjVWj1RoQCE9+eG8iPlodjK7v2e7z+/mEqKlvxcHfAy8vxsu99+50jHDhYTGPT+YUiFQopcbG+JCb6k5QYQGCA20X9asaby80h30Ss8riQsZLJyPrd09ODvf3l69pZlZcbRKPX89rJU/w7LQOd0YitVMpPFs7lnsR4hBZghbmaTpVf38Ifth0kv8G8vRLo5sTPblrE/PCACWzp+FHZ1MG/t6dxIKcCAJFQQLy3kmce3oSvxzezsm9zey+f7c1h+4F8evvN5TBkUjEr5kZwy6pEwgLcJ7mFE4PJZGJPYSu/+7KIRrV5+3dOsDOL7Np48JaJXZxaWtRkZteQnV1D9ulaenvP3452dFQQH+dHQoIfifH++Po6T4il17pYn49VHhdiVV7GgIlWXkYoa+/gV7u/4nRTMwCJ3l78YdUywtwmd5viajuV0Whia3YRL+w5Rme/2alzUWQQP12zEH9Xxwlq7fhSVNvKv7ad4ERRDQASkZBb5sfx0KpkXB0st6L4eDKs0bH7SCHvbD5Km/psrpy4cG82rUxgcUoYkmlghbsYVe39/HZ7EUfK2gHwdpDzm7VRLA13YdeuXZO6OBmNJiqrWsk+Xcvp07Xk5dczPHx+qLWLs5L4eD/i43yJi/XFz89lXJQZ62J9PlZ5XIhVeRkDJkt5ATCaTHxwOpe/HT7GgFaHRCjkuymzeHxOMjLx5LgXXWun6hvW8O/9J82RSEYjYpGQe+cm8ujiFJTy6ZGC/lRJLX98bye13WaLg1wi5tYFcdy/YiYu9t88JUan07Fjxw58QxL54qt8DmWUjxYddHJQsG5xDOuXxuHt7jDJLR0bBrV6XjpQwRtHq9AZTEhFQr67IIjHFwejkIotcnHS6QyUlDaRk1PH6dxaCgsb0enOD393dFQQE+1DXJwvcTG+BAe7j9ZfurHftjx5TCZWeVyIVXkZAyZTeRmhqbeP3+47wIEKcyh1gJMjz61YypyAia8zdL2dqqqti7/sOMyxshoAXJQKnlg+h00zoxEJp3aQ2shi7R4Sx2s7M8ivNlvL5BIxty2M5/7lM3G2V0xyKyeOr/eR9q5+tu7PY9v+PDq6zfmABAJIjQ9k4/I45iQFTck+YDKZ2JHfzB92FNPcY1ZcF4W78cy6aAJdzyqtU2Fx0mr1FBc3cTq3ltzcOopLmi8I0ZbLJURGeBMb40N0tA9Rkd7Y2l77DchUkMdEYpXHhUyG8mKNNhoHvO3teG3TevaUVfDcVwep6VZz38db2BgdyS+WLMBFYfkLY5C7M689eDNHSqp5fudhqtu7+e3nX/FhWg4/W7uQ1OCpWfBxBIFAwKxwX2ZHB3KiqJbXvkyjoKaF97/K4tMjudy+MJ77ln2zlJgR3JyVPHzbHB64OYXj2VV8ti+XU3m1pOVUk5ZTjbuLknWLY1m3JBZ3l6nh4Fve2sdvtxdyvMLsXO/rbMPTa6NZFulu8RGCF0MqFZu3jOLN41Cr1VNW3kJ+fgN5+fUUFDYwMKDhdE4tp3PM+Y4EAggMcCM6SkVUlIroKBUqldOUvH4rVqzKyzghEAhYFR7K3AA//n7kBP/NzuGLwmIOVVbz00XzuTUu2iIceq/EgohAZof68dHJXP711UnKWjr49htbWBIVzE9Wz8ff1Wmym3hDCAQC5kYHMCfKnxOFNbz6ZRqFta28ty+LTw7nctuCeO5bPuMbuZ0kFotYmBzKwuRQGlq6+eKrPHYcKqCts583N6fx9paTzJkRxIYlsaQkBCIegy2KsaZfo+cfX5Xx9vEa9EYTMrGQxxYF8+jCYOSS6ePLI5WKiYn2ISbah7vuTMVoNFFb20FBYQP5BQ0UFjbQ3NJDVXU7VdXtbN+RA5gLTkaEexEZ6U1khDfh4V442FsrX1uxfKzKyzhjJ5PxzPLFbIyO5Nd7vqK4rZ1f7t7HlvxCnlu5lPBJdui9GiQiEffOTWJdQiSv7D/Jx+m5HCiq5EhJNXemxvPYkhQcbaf2hCcQCJgbE8ic6ACOF9bw2hkl5v2vsvjkcA6b5pl9Ytwdp24enBvBx9OJ739rId+5fS6HM8rZuj+P00UNHMus5FhmJW7OStYsjGbt4hhUHo6T3VxMJhNbc5r4485i2vrMyd+WRXrwzLoofJ2nvzVNKBQQGOhGYKAb69YmAtDV1U9hUaP5UdhIWXkLvb1DZJyqIuPU2Wzh3t6OhId5ER7mSXiYFwEBk7P9bsXK5bD6vEwgeqORdzJP889jaQzqdIgEAh6YmcQTc1NRyqTj8pvjsT9b0drJ33Ye4egZfxh7uYxHlqRw9+x4pJPkmHwtXI1MTCYTxwtr+M/O9FGfGIlYxMY50dy/YhbeLpffj51KXG8fqWnsZOv+fHYfKaSnb3j0/IwYP9YtjmFhcigy6cT3h5KWXp7eWkhGdRcAAS4KnlkXzeKIqwv//qb4NGi1eiqr2iguaaKkpJmS0mYaGroueJ9AAI6OUhLigwgP8yI01JPQEA+USvkktHry+ab0j2vB6rA7BoxcfG51NXEBAZPdnIvS1NvHH/YfYk+ZOe+Ih1LJb5YtYmVYyJjvP4/nQDtRXstfdx6hrMWcat7HyZ4fr5rHyljLzjR8LTIxmUxklNTx+s50TleYyyiIhULWpETy0KpZ+LlP7W0zuPE+otXpOZpZyfYD+ZzKr2VkRrGzlbFiXiRrF8UQFjj+viU9Qzpe2FfG+ydrMRhNyCVCnlgSysPzA5FdQ7j3N3lx6usbpqy8hdKyZkpLmykta6Gtrfei7/XydCA42IOQYHdCQjwICfbAzc3Oosf+WPBN7h+XYtoqL6+88gp//etfaWlpIT4+npdeeonk5OSLvvedd97hwQcfPO+cTCZjeHj4ou//OiMXH/bSn/nFouXcF51osb4lhyqreXbfAep7zJPDgsAAnl62iADnsVsQx3ugGYxGtmUX8899x2nrNUemxPl68tTq+cwM9Bnz3xsLrlcmWWUNvLk7nZPFdQAIzxSGfHDlLMJ83MaruePOWPaR5vZedhwqYMfBAlo7+0bPh/q7sWZhNCvmR+I0xk7QRqOJz0438uddxXT0m3PVrIn15Fc3RaFyvPbtTOvidD7t7T18+L8vcXL2p6qqnfLyFppbei76Xjs7OQEBrgQFuBMY6EZQoBsBga4obaePlcbaPy5kWkYbffzxxzz55JO8+uqrpKSk8OKLL7Jy5UpKS0txd7+4Gdfe3p7S0tLRv69Hkx/S6/jt8QNsqyjhLwtXEOpkeb4li4IDSfW7n3+nZfB6RiZHqmtY/db7PJw8g8dSk1FILX9giIRCbp4Zzcq4MN45msVbRzLJq2/h/tc/ZVFkED9eOY8QD8vavrteZoT5MCPMh/zqZt7clcGR/Cr2ZJayJ7OUeTGBPLBiJkmhlqmwTRRebvY8fNscHrwllayCOr48WMCRUxWU17bzj/cO8fIHR5idGMjqBVHMTQpCKrmxKaigsYentxaQXacGIMjNlmfXRzM/dOoqk5aGo6OCAH8la9akjC5Mvb1DVFa1UVHZSkVFK5WVbdTUdtDXN0x+fgP5+Q3nfYebmx0B/q4E+Lvif+bo5+8yrZQaKxPLuCsvf//73/nOd74zak159dVX2bFjB2+99RY///nPL/oZgUCAp6fnDf3uL5Ln8XJJLtmtTdy0+X2+l5TCYwkpSEWWFWEgl4j58YI53BwTye/2H+JwVQ3/Tstga2Exv1qykBXjsJU0HiikEh5fmsptybH8e/9JNp/K51BxFUdKqrl5RjTfWzYbD4fp4ewaG+jFi49voKyhnbd2Z/BVdjnHCqo5VlBNQrA3D6ycxfyYwCnxfxsvREIhyXEBJMcF0Ns/xFcnStlxqJDiypZRJ197pZxlc8JZvSCaqBDPa5KXelDL3/aW8mF6HUYTKKQifrg0lAfnBiIVW17U03TD3t6GxAR/EhP8R89ptXpq6zqorm6nusZ8rKpup6Ojj/Z28+NUZvV53+PsbIufnwv+vq74+jnjq3LG19cZNzf7MUmwZ2X6Mq7bRlqtFoVCwebNm9m4cePo+fvvvx+1Ws3WrVsv+Mw777zDww8/jEqlwmg0kpSUxB//+Eeio6Mv+hsajQaN5mwp+d7eXnx9fWlubkYjk/D0iYMcbqgBINTRhT/MW0qiu9eYXudYYTKZOFBZzR8PHaWp12xyn+Pvy68WLyDoOreSdDod+/btY/ny5RNq4qzp6Oalr9LYX2SOYpCJRdwzO54H5s3A3mZyM/WOtUzq29X8d/9pdqQXozuTmTbE24VvLU1ieVIIYgtTmL/ORPaRmsYu9h4rZu+xEtrPJMAD8PV0ZPncCFbMDcfrMpl8jUYTn2Y38n/7yukeNKfLXxvryc9WheFpPzZ38ZM1ZiyVG5VHX98wdfWd1NZ1UlvbSW1tB/X1XXR09l/yMxKJCJW3EyqVI97eTnh7O6LydsLLywFXF7tJKVA5grV/XMhYyaS3txdXV9fJ93lpampCpVJx4sQJZs+ePXr+pz/9KYcPHyY9Pf2Cz6SlpVFeXk5cXBw9PT387W9/48iRIxQWFuLjc6FJ/re//S3PPvvsBec//PBDFAoFJpOJrOE+PuvtYMBkQADMUziwVumCXGiZi4rWaGR/p5qDXWoMJhACC5wdWO7ihHyK3Y3U9Q2zq66L2jPRKDYiIQtVjqR62COdYtdyJfqG9Zys7SGzrhetwTysHORiUgMcSPKxs1oEzsFoNFHXNkRBVR9l9f3oDGenIZWbnOgAO8J9lSjkZ8dobT9srhJRN2BeuDxtTNwaaCTUYVrFHHxj0GgNdHdr6erS0NWtRa3W0K3W0qPWYTBe+n8qEgmws5PgYC/B3l6Cg70Ue3sJdnYS7O0k2NiIvtFWz6nM4OAgd99999RUXr6OTqcjMjKSu+66i9/97ncXvH45y8u5odJdw0P8OeMon1cUA+ChUPLM7EUs9w++kUscV+rUPfzp0FEOVdUA4KpQ8NT82ayPirhqJ2RLuEswmUwcLavhH/vSqGwzh2K62dny3UWz2JgUiWSCLRPjLZPewWE+O1bAR4dz6e4zVwa2s5GxaV4Mty+Is7gikJPdRwaHtRw5VcneYyVkF9WPRiuJREJmxfiROjOYk11GPs9txmQCpUzMD5YE860UXyTjoABPtjwsjYmWh8FgpK2tl4aGbpqau2lsUtPUpKaxqZvW1t7RuluXQiYT4+5uj7ubHW6udri52eF6ztHVRYlCIb1uBcfaPy5kMiwv4+rz4urqikgkorW19bzzra2tV+3TIpFISExMpKKi4qKvy2QyZLILtyEkEsl5QvSQSHhh6U3cEh7Dr47uo7ZXzeP7v2RFQAjPzl2Kl9Ly0pwHu7nyxm03c6iymt/vP0RNt5pf7NnPR3mF/GbZIhK8r3776+vymGiWxoSxKCqEL3NKeHlfGk3qXv6w/RDvHT/N95fPYU1c+ISbgsdLJi4OEr5z02zuWzGLL08W8f5XWdS1qXl3XxYfHsxhTXIE9y6bQZCXZTkyT1YfcZBIWLckjnVL4mjv6mPf8VL2HS+mpLqN/VVqPu+uw3RGwZ3rZ8/zdyahch5/BXCyx4ylMVHykEjAz88NP78Lna5HFJvmFjUtLT00N6tpbumhpbWH1tYeurr60Wj01Nd3UV9/Yc6aEeRyCa4uSlxd7XB2VuLibIvTmaOzsxJnJ1scHBU42Ntc0vfG2j8u5EoyMZlM9Pdr6Ozqp6urn87Ofjo6+mnv6KW9o4+mxrar/q1xVV6kUikzZsxg//79oz4vRqOR/fv38/3vf/+qvsNgMJCfn8+aNWvGpE3zfPzZc9v9/CMrjf/kZbK3poITjXX8JHke90YlWGTBuUXBgcwJ8OPdzNO8fCKd3OYWbn3/IzbFRPGThXNxV04NR1iRUMiGpChWx4XxaUY+rx3MoL6rh599vIs3D5/iByvmsCgiaNqYfGUSMbfMj2Pj3BgO51Xx/r5Mcqua2XqikK0nCpkXE8i3liYxK9x32lzzjeLmbMfd62YSHhfMzzfn0Nw+CIBYM4xDZyvV1UM8eCqXhckhLJ0dwcxYP4ssS2BlfBCJhHh5OeLl5XjR17VaPe3tfbS29tDa1kt7ey9t7X2jx46OPgYGNAwP62ho7KahsfuyvycQmJ2THR1tcXSwwd7eBjs7Oe1tbQwNZ+LoaIudnRyl0vywU8pRKmXI5dJJ9cuZCEwmE1qtnv5+Dd3qfhqbBkk7WcHgoI6e3iF61IOoewZRqwfpVg+iVg/Q1TVwQTX0c9Hrry4lCkxAnpePP/6Y+++/n9dee43k5GRefPFFPvnkE0pKSvDw8OC+++5DpVLxpz/9CYDnnnuO1NRUQkJCUKvV/PWvf+WLL74gKyuLqKioK/7etWTYLels5xdH9nK6zZxBNc7Ngz/OX0GMm8eNX/g40d4/wN8OH2NLQREAComER2cn89DMJOQXCTu15JwEAxot/z1xmrePZNE3bN76i/P15Inlc5gd4jduC/pkyiS3son3v8riYG7F6PZIqMqVu5cksXpW+A2HDl8PltRH2vs0/HlXCVuyzaG29nIxT60II8lVzoGTpew/UUpH91lHTwc7OQuTQ1mSGkZS9NgoMpYkD0tgusljaEhLZ+eZu/7OPjo7++nqNi+sXV39dHYNoFYP0Ns7xPWujgIBKGxkKGyl2NrKUNhIsbGRIpdLsLGRYiOXIJdLkMokyGVipDIxMqkEmUyMWCxCIhEhlYqQSMSIxUJEIvNj5LlQKDS7DgjM+aYEZ56bjCZMmBULTGA0mTAYjBgMRoxG83O93oBOZxg9jjyGNTq0Gv15x6EhHUNDWoaGtQwP6RgY1DAwcPah119+C+9SKJUyXJyVODsrzdt5LuZtPRsbWLlixuT7vIzw8ssvjyapS0hI4J///CcpKSkALFq0iICAAN555x0AfvzjH/PZZ5/R0tKCk5MTM2bM4Pe//z2JiYlX9VvXWh7AaDLxQVEuz2ccpU+rQSgQcF90Ik/NmouddHKjYi5HXnMLz311iJwms+Klsrfnp4vmsSbi/Oy2U2HiUQ8O89aRU3xwIodhnR6AGQEqfrBizrgkurMEmdS1qflgfzbbTxYyrDVfs7OdgtsWxHHbgvgJrWZtCfLQG4y8f7KWv+8ro2/YLI87Zvry/1aF46o8Ow6NRhO5JQ18daKUgyfLUJ/xKQJwtLNhQXKIWZGJ8kV8DVl1z8US5GFJfFPlYTAY6ekdQq0eQN09aLYm9AzSrR4gL68YJycPBge19PUN0z8wTH/fMH39w9e9oE9VhEIBSqUMocCIp6cL9vZmC5WDgw1OjrY4OChwdDRbr0a25aSXKBticRl2J5LrrW3UNjjA704cZHtlCQDuCluenrOYm4LCLdakbzKZ2F5cyvOHjtLSZ74bnaHy5ldLFxLnZfYpmkoTT3vfAG8cOsUnGXlo9WbT4uwQP76/bDYJ/t5j9juWJJPegWE+O57Px4dyaD1jUZCIRayaFc7dixMJ9726ejw3wmTLI72qk2e2FVLSYk4PEKty4LkN0ST6XT49gN5gJKeonv1pZRzOKD9PkbFXylkwK4TFKWHMjPVDYi0PcN1Y5XE+l5PHyFbKwKCWgQENgwMaBgY1DA5qGR4+Y8UYMj8fHtah0erRnDkOa3TotAa0Oj16nRGdTm+2iugNo9YTg+GsJQWTCaPJhMlk/l2TyWzxEWC2wgjOWGVEYhFCoWDUeiMSCZFKzNYdsViERCpCKhEjlYrN1iCp+Iw1SHLGYmS2FikUUuRyKUpbGbbnPGxspBgM+ulZHmAiudHCjEcbanj62H6qe8x7ofN9Anhu3lICHSy3hs2QTscbGVm8nn6KoTOWi43RkTy5YC5uNvIpN/G09PTx+sEMtmQWoD8TWTAvLIDvLZtNnO+NJS8Ey5yMdQYDB7Ir+OBANgU1LaPnZ4T6cNeSRBbEBo2bb8dkyaO1d5g/7Szmi5wmABwVEn66MoI7ZvkiukZ/gfMUmVPlqHvPKjJKhYy5M4JYOCuUlPgAbOSXv0ZL7B+TiVUe52OVx4VM29pGE8lYVJUe1ut5NSeDf+WkozUYkApFPJIwi8cTUrCx4M7a0tfP/x05xucF5nBwmVjEAzMS8evqYNO6tVNuoDV09fD6wQy+yC4czfuwIDyQx5am3pASY+mTT15VMx8eyGb/6fLR6/Z0tuP2BfFsmBuDk/La6/VcjomWh85g5J3jNbz4VRkDWgMCAdyd7MdPVoTjZHvj1dUNRiO5xY0cTC/jUHo5neqzyfCkEjHJ8f4snBXC/JnB2F9ElpbePyYaqzzOxyqPC7EqL2PAWCgvI1T3dPP0sf0cPZOh18fOnmfmLGF5QMgYtHT8yGtu4Y8HDpPZYL6jVYpE/GTxfO5MjEdsgdFUV6KuU81rB9PZfrp4TJSYqTL5tHT18emRXD4/lo96wOyFL5OIWDkzgjsXJxAxRltKEymP4xUdPLOtkIo28xZZgq8jv9sQQ6zPpbPq3ghGo4n8skYOZ1Rw5FQFTW1nCwr+8tEVrF0ce8FndDodO3bsYPXqNchkN65MTXWmyniZKKzyuJBpWZhxKhPo4MR7a25hd3U5z504SENfL9/Z8wVL/YJ4Zu4S/OwdJ7uJFyXOy5P/3X07+8or+fPBI9Spe/jtV4f47+k8fr54AQuDAizWj+di+Lk48odbV/LdRSm8djCdL3OKOVJazZHSauaHBfD40lTi/Cyz5MON4OlsxxMb5/GdNansySzl40M5lNS3sS2tkG1phcQHeXH7wgSWJYVek0/HZNCkHuIPO4rZkW92MHexlfKz1RHcmuQzriGlQqGA+Agf4iN8eOLehVTUtnP4VAVHMyuYk3TpBJUCgWC0XQajeevyUmkUTCbT6Hg6mVNNY2sPq+ZHYquwXId/K1amOlbl5QoIBAJWB4Wx0DeAl7JP8kZeJvvrqjjWWMejCbN4LCEZudjytG+BQMCKsBDm+vnwzP8+4VDvABWdXTy8+QtS/Xz52aJ5xHrduP/IROLv6sgfb1vJI4tTeP2Q2RJztKyGo2U1zA3155ElKcwIUE12M8ccuVTMhjnRrJ8dRV51Mx8fzOGr7HJyq5rJrWrm/zYfZuPcGG6ZH4uX8+XvViYajd7Am8eqeWl/BUM6A0IB3Jvqz5PLw3FQTOy4EQgEhAa4ExrgzsO3zbnk+/oGNKQXdePhV09qYtB5SovRaHaSFJ6j3IwoLh9uP8WhjHIKy5uRSkSsW3KhVceKFStjg1V5uUoUEik/S1nALWHRPHN8P8cb6/hHVhqbSwv5zexFrAwMtUhrhlQkYr6zA7+4dRNvZp3mnczTnKyr5+b3/sfayHCeXDAHP0fHyW7mNeHvarbEPLI4hdcPZrDtdBHHy2s5Xl7LrEAfHl2SQkrw9Ev8JhAIiA/yJj7ImydvHeDz4/lsPpJHe88Ab+3O4J09p5gXE8itC+KYHeU/6QkXD5e18+y2Qqo6zD4nswKceHZ9DFHelqVgfR2d3kBHr5af/982QEBksAfL5kSwODUMZwcFQs7vV13qAT7dfZr03Bo2rUigqq6D2LCxi46zYsXKhViVl2skxMmF/950G7uqy/h92iEa+3t5dN825qn8+e3cJYQ4WVbK9xHs5TJ+umg+dyfG8cLRE2wrLOHL4lL2lJZzd2Icj89JwUUxcblFxgI/F0d+f+sKHl2SwhuHT/F5ViGnqhs49WYDcb6ePLI4hYURgdNOiQFwdbDlO2tSeWDlLI7kVfHp4VwySus5kl/FkfwqvF3s2TQvlg1zonGxn9haSvVdg/zuyyL2FpnLgrjZyfjlmgg2JqimxP/C2UHBTake/PWXy6iq7+JoZiWf7s7mhbcP4OlmT2y4N4/eOQ8PV3tyiht4f2sG9ko5Lz19O9v25+HqpMTbY3x8eKxYsWLGqrxcBwKBgDVB4Sz2DeLfOem8mnuKY421rNr8Lg/EJPKDpDnYX6TekiXg4+DA/61dzbdnzeD5Q8c4VlPLu1k5bM4v4rspM3lwZhIKqeVtg10OH2cHfnvzMh5dksLbRzL5NCOfvPoWvvfeViK83Hj3u7ehlFvm/+NGkYhELE0MZWliKDUtXWw5ls/2tEKaOnt5eetxXt2exuKEYDbNj2NWmO+4+pcM6wy8fqSKVw5WoNEbEQkFPDgngB8uC8XuCuHJlohCLiUxypfEKF+euHchTW09nMqr5au0Unr7hymvbeejHVlsXBbHnKQgFHIpXx4sYHZS0KRkSrZi5ZvE1As9sSBsJBKenDWPr25/kGX+weiNRt7Iy2LJx2/ycUn+qKOfJRLl4c47d2zi3Ts2EeXhzoBWywtHT7D09bf44HQuOsOl609YKp4Odvxi3WL2/PTbPLhgBjZSCY4K+bRVXL5OgKczT926kN1/+i7P3reC2EAv9EYj+7LLeewfW9j427d5e08GHT0DV/6ya2R/cSsrXjjC3/eVodEbSQ1yZtcP5/PrtVFTUnH5OgKBAJWHIxuXx/Py07fj5qzknc9OUlTRjFIhQyQUojcYqWvuZklq2GQ314qVaY/19mAM8LN35I1VN3Oorprn0g5Spe7iZ4f38H5hDs/MWcwsr7FPcT9WzA3w54v7/dhRXMrfjxynvqeXZ/Ye4I2MLH48fw5rI8PNNTSmEG52tvxk9QIeXphMz+CVC30ZjEYECKZNITW5VMy62dGsmx1NWUM7W47msSujhIb2Hl764jj/3pbGgrggbp4bQ2qU/w39Vm3nAM9tL2J/ibkarIe9jF/dFMW6OK8psUV0vdgqZDx613wOpJXyx1f3ou4dxMXJFpHw6x4xVqxYGQ+syssYssgvkDkqP94rPM0/sk5Q0NHKbds+Yl1wBD9PWYDKzjIdFYUCAeuiIlgZHspHOfn8Ky2denUPT27fxesnT/HUwrksCpp6viOOCjmOCvklX+8b1qAUCJGeCTO+XEis0WiiuacXJ1vFlNpWC/Nx4xd3LeVHmxawN6uMz4/nk1fVzIGcCg7kVODhpGRtSiTKQd01fe+Q1sC/D1Xw6pEqtHojEpGAh+YF8oMlodjKpv+0IhGLmBnjx8wYP35wn47m9l5+/cJ2+gc0/PblnTxx70IWzgq94HO5JQ2U17QzM8YPf5XzlBtTVqxYCtN/lplgpCIRD8fNZGNoJP+XcZyPSvLYXlnC3poKHomfyaMJySgklpn4SioScd+MBG6JjeLdzNO8np5JSXsH39m8lRkqb55aOJdkX8u1Il0rR0pr+POOIywID+RHq+bi7WhWLk1naoacq8Rk1TTyYVoONR3dhHm68vjS2fi7Ok5Sy68dG5mEDXOi2TAnmorGDr44UcCO9GJau/t5c/cpANJat3Lz3FgWJQQju4TPhslkYk9hK7/7sohGtTkF//xQV55ZF02Iu3LCrseSkMskqDwc6O0f5ol7F7IoJfSSRSF3Hipk+8ECAFydlMyI8WVmjB8zYvzwdLXMmxsrViwRq/IyTrja2PKnhSv4VnQCz504QHpzA//MPsnHJQX8v+R5bAqLttjtGFuplMfnpHB3Yjyvp5/i3azTZDU2cfeHnzIvwJ8fz59DvPfUyhFzMdbEheFqr+Tdo1mseP5NZgf78cSKucT5eiI6878xGk0IhQL8XBxZEB7IxhlRbM0u4jtvbeGp1fNZGTv1/BtCVK785LZFPLFxHodyKvnsWB6nyhrIKK0no7QeOxsZq2aFs352NFH+HqPWgar2fn67vYgjZe0AqBxt+M3aSFZGe37jLQiF5c109QwQF6G6aMmBESJDvGhq7yW/tJGO7n72HC1mz1FzOQ9vdwcSo3xIivYjKcoHD6syY8XKJbGWB5gATCYTu6vL+cPJQzT09QIQ4+rBb2YvIsXbd1x/eyzSNrf09fOvE+l8kleA/szWytKQIH48fw4R7m5j2dwJ4WIyKW5q452jWezOLyPE3YXHlqayLPrSZSB+v/UA9V09vHLfhnErmDhR6HQ6Pti8lX4bT3aeKqGlq2/0tWAvF1YmR9KgkfNBRj06gwmpSMh3FwTxvcUh2EgtO7Pv9XA9Y6Z/UEN6bg0LZ4Vc0upyLhqtnvyyJjIL6sjKr6OkqmW09MUI3u4OJET6kBDpQ2KUD97uDpOiJFrT4Z+PVR4XYi0PMIbU9astRnkZydK72C+ItwuyeCU7nYKOVu7Y/jGrAkP5ecoCAiy4arWnnZLnVi7lOykzeen4Sb4oLGZ/RRX7K6pYExHGD+amEuJqGbK+XiK93fnLHav5wYo5/O9kLj/6YDt3psTz6w1LgPNTwANEqzw4UV5LbWc3we5T+9oBnBQS7lmTwuPr53KqtI5taUXszymnqEND1oFGjELzhBTrpeDvdyQR6mnNY3IuSoWMpbPDr/r9Mql41GeGO2FgSEteSSPZRfWcLqqntKqVprYemtp62Hm4EAB3FyUJET7ER/oQH6EiQOUybZzMrVi5Vqat8nL7ofd5LGkRj0XOxcZC0vfLxWIeS0jhtvAYXsg8wf+K89hdXc7+2kruj0nk+4mpOMrHtmLwWOLr6MDzN63kkdRZ/ONYGjtLythZUsbu0nLWR0Xw/TkpBDhbrhJ2NaicHPjJ6gV8e8EshnX60fNGk2l0K6m6vYu8+mZkEvG0UFzORSgUkBLpj7OzMxVaB9Jrus3njVoUQ+00lAzwnb8Ws3xGGGtToogLmt5RRROFrY2U2YmBzE4MBGBgUEN+WROnixrIKW6guLKFts5+9h4vYe/xEgAc7OTEhquIC/MmNtybiCBPZNJpO6VbsXIe07an640GXik6zuc1+fw6cTkrVOEWM8m62tjyh/nLuS86gd+nHeZoQw1v5GXxaWkhTySlcm90AjKR5f5rgl2c+eeGm3hsdjL/OJbGV+WVfFFYzPaiEjZGR/L4nBT8nRwnu5k3hJPt+UqkSChkWKfn04w8PknPx1lpw49WzgXO+sVMB/qGdfxzfzlvH69BbzQhEwt5bFEwqyOc2JtZyo70YtrU/Ww5ms+Wo/n4uDmwJjmSNcmR+Lk7Tnbzpw22ChmpCYGkJpiVmWGNjoKyJnJKGsktaaSgrImevmGOZVZyLLMSALFISHiQB3Hh3sSEeRMT6o2b8zfTidrK9MdyV8gb5C8zb+KlmlM0Dfby+PEtzPcM4jeJywm2d53spo0S7uzG+zfdyqG6av6UfpjSrg5+n3aIdwtO89Pk+awNthyF62JEurvx6qb15De38M/jJzlYWc2WgiK+KCzm5pgoHp+TPOXqJn0dvcHIkdJqDhZXklZRh72NnLWJEdyRHIfjGQVnOiguJhNszW3m+T1ltPVpAFge5cHTa6PwdTaXjQj3cePx9XPILK1nR3ox+3MqaGjv4fUdJ3l9x0liAjxZkxLJyhlhONlNrVITlo5cJmFmrD8zY815efR6A6XVbeSWNJBf2kR+WRNdPYMUljdTWN4MZAHg4WJHTJgX0aHeRId6ERbgbrXOWJkWTGuHXYWDPf8uPs5/Sk6iNRoQC4Q8EJbME9HzUEosK+uqwWhkc1kh/3fqGG2D5gyo8e6e/Cp1Eck3kORuIp3Lcpta+OfxNA5X1QAgEgi4OSaK781JwdfRcnwkrkYmWr2Bg8WV/H3XUexs5ESp3FkZE8aMQBXyM2HE08Xikl/fxY/eO0Fln/laAlwUPLM+msXh7pf93JBGx8HcCnakF5NeXIfxzFQiEgqYHRXA6lkRLIwzp82fSkxFh0yTyURTWw/5ZU3klzZRUNZEZV3H6P9kBLFISIi/G9GhXkSFeBEd4omPp9Nl+/FUlMd4YpXHhVgddscYG7GEJ2MXcUtgPL8/vZcDTRW8UXqSrbX5/DRuCRsDYi0mXFkkFHJHRCzrgsP5T14mr+WcIrethdu3fcQy/2B+ljKfUCfLsRpdjHhvT9687WZONzbz0vGTHKmuYXN+IV8UFrMxOpJHZycTMEW2kwxGI+UtHTSqe4mwkfPokpTz8sAIBFM/I2/PkI4X9pXx/slaDEYBcomQJ5aE8vD8QGRXETFjI5OMbhl19g6wN7OMnRnFFNa2cqygmmMF1cilYhbGBbNqZjhzogOQXMX3Wrl2RsoXqDwcWTU/CoDBYS3FFS0UljdTUN5EYUUL3T2DlFS1UlLVypY9OYDZ2Tg8yIPIYA8igjyJCPLAy83eoq2+VqxMa8vL16ONDjZV8LvTe6ntNzshJrqoeDpxBXEulle+vm1wgH9kneCj4jwMJhNCgYDbwmP40Yw5eCntrvp7JvMuIbuxiX8eO8mxmlrAnMl3fVQEj89OJsjFeULbci7XIpPG7h7+vusYewvKSfT35qEFM1kUGXTJ93+ZU8Kx0mrumZNIrK9l5sIxGk1syW7gL7tL6OjXApDgbOQfDy7E3+3Gc4vUtHSx61QJu06ZSxKMYGcjY2liKCtmhjEzzNdiQ8yn6521yWSipb2Xwgrz1lJhRTNl1e1oz3FMH8HOVk54oDvhQR6E+LnQVFPE3bdvQCabWla08WC69o8bYTIsL98o5QVAY9DzTlkGLxcdY1BvTol+S0Ac/y9uMW42lufcVtHdyV8zjrGnphwAmUjMg7FJPJaQjIPs0qnvR7CEgXa6sZlXTqRzqKoaAAFwU2Q4j89OJsxt4q1J1yOTvmENL+9L44O00+z6yYP4Ojte8B6TycTtL39IUZO5zk+cryf3zE5gRWzYaAmCyaagsYentxaQXacGINjNll+viaC3LH3M+4jJZKKwtpXdp0rYm1V2XkFIJ6UNy5JCWTEznMRglUVZsSxhzEwUer2B6oZOiitbKKlqpbiyhcq6DvSGC4vKKuQSQgPcCQ1wJyzAjdAAdwJ9XL5xFbS/Sf3jarEqL2PA1Sapax3q4695B/m8Jh8AW7GU70XN44GwWRYZ6ZPV0sSf0w9zqqURAAeZnMcSknkgJhH5ZULBLWmg5Te38EpaBl+VV46eWxkWwmOzk4nx9JiwdoyFTL6e92WEgoYWPjiRw668stHK3C5KBbcnx3J7Shzu9pOjIKsHtfxtbykfpNdhMoFCKuKHS0N5cG4gApNh3PuIwWgku7yRvVml7M8uRz1wtmCmm4Mty5JCWT4jjLhA70lXZCxpzEwGOr2BqroOSqtbKa1uo7iyhYraNvSGC5cKkUiIv7czIf5uhPq7EeLvRpCvK65OttN22+mb3j8uhlV5GQOuNcNuTmcjz2XvJberCQA/pRM/j19iUaHVI5hMJvbXVvF8xhHKujsB8LRV8sMZc7gtPAbxRQoKWuJAK2pt419pGewuLR89tyAwgO/NSWaGj2rcf38iZNLZP8inGfl8nJ5LW6/Z4iAWClkaHcydqfHMCvSZkP5lNJr4OLOe53eX0H2m+OL6eG9+uSYSTwez5W6i+4jOYOBUaT17M8s4kFNB/5Bm9DV3RyVLE0NYlhRGfNDkKDKWOGYmE51Ox5df7iAqPpWqhi7Katoor26jvLadvoGLV223V8oJ8nUl2M+VIF9XAlQuBPm64GBnuXmsrhZr/7gQq/IyBlxPeQCjycTnNfn8Le8gbcP9AKS4+/OrhGVEO1me34LBaOSz8iJeyDxOU785lXuggxNPzpzLTcHh5zkhW/JAK2vv4NWTp/iyuHQ0KiLZ14fHZiczL8Bv3Bb3iZSJzmBgf2EFH6TlkF3TNHo+yN2ZO1PiWZ8UiZ18fCLfcurVPLO1gNwGs99JmIeSZ9fHMDv4/HExmX1Eq9OTXlLH3qwyDudW0j+sHX3N1V7B4oRQliaGkBTqM2E+MpY8ZiaDS8nDZDLR1tlHRW075bXtVNS2U1HXTkOz+oIopxGcHRQE+roSqHLGX+VCgMqZAB8XnB0UFnezeCms/eNCrMrLGHAjtY0GdFpeKznBG6XpaAx6BMCtgfE8FbvIIv1hhvV6/luUw79Op9M1bK7wG+3qzk9mzWORbyACgWBKDLSabjWvnzzF5wVF6M7UTorxdOex1GSWh4WMeUTYZMmktLmdj9Pz2Ha6mCGt2QpiI5WwNiGCO1LiiPS+fGjy1dI1oOX53SV8nFmPyQR2MjE/Wh7GfbP9kVxEAbCUPqLV6UkrruWr7HIO51WdZ5FxVNqwKC6YpYkhzAr3HVc/C0uRh6VwrfLQaPXUNHZSVd9JVV07VQ2dVDd00tLee8nP2NnK8PN2xt/bGT9vJ/zPPFd5OlpchJq1f1yIVXkZA8aiMGPTQA/P5x1ke525poitWMqjkXN4KCz5sv4lk0WfVsNb+Vn8JzeTfp35zjXZ04efJM8j0dVjygy05t4+3jyVxUc5+QzrzREQwS7OfDdlJuuiIpCKxmYSm+zJp29Yw7bsYj5Kz6WqrWv0fLyvF3emxrEiNmw0l8y1YDCa+DC9lr/tLaNnyKwcbUpS8fPVEbjbXdq5e7LlcTF0egMZJXXsP13BwdwKes7ZnlDKpcyPDWJxQjBzogLGPI+MJcpjMhkreQwMaak9o9TUNnZS09hFTWMXzW09l7TUCAUCPN3s8fF0xM/LCR8vJ3w8zSHhXm72k+IsbO0fF2JVXsaAsawqnd3RwO9P7xv1h/FS2POT2EWs94+xmPww59I1NMi/czJ4t/A02jPOovNV/swaNvLYhk1TZqB1Dg7yXmYO72Xn0Kcx33172il5cGYSd8THorzBcE1LmXxMJhOZ1Y18nJ7LvoKK0Yrd9jYyNiRFcVty7FXXTsqq7ebprQUUNpnvbiO97PndhmhmBlw5JN1S5HEpdAYD2WUNHMip5GBuxXlRS1KxiJRIPxbFBbMgLggXe9sb/z0Ll8dEM97y0Gj11Dd3U9fURW1TF7VN5ud1zd0MDmkv+TmBANyd7VB5OOLt4YC3u/nhdeY4XltR1v5xIVblZQwYS+UFzP4w22sL+Wv+QZoHzQtDrJMXv0xYRrK73w1//3jQ3N/HS9kn+aQ0f3RBXOYXxFPJ84l0cZvk1l09fRoN/8vJ453M07T1mxcse5mMbyXFc/+MRFxsry8FvSVOPu19A3yWWcDmjAKa1GfN6zMCVNyWHMvymNCLWmPa+zT8eVcJW7IbALCXi/nJynDuTva7ah8RS5THpTAaTeTXNHPgdAUHcypo6DibR0YggLhALxbGB7MwLphAz+vLJTSV5DERTJY8TCYTXT2D1DV109DSTV1zNw3N3TS29tDYqmZIo7vs52VSMR6udni62uPpZj969HCxw8PVHjdn5XVtSVn7x4VYlZcxYKyVlxGG9TreLsvg1eIT9OvNdwPLVGH8PH4JgXaWWVm4rlfNC6eO80VFMSP/5JuCwvjRzDkWn633XDR6PV8UFvNGRhbVXeYEgzKxiFtio3lo1oxrztpryZOPwWjkRHktn2bkc6ikCoPR/J+zt5GxPjGSW2fFEurpit5g5L20Wl7YV0afxrzFdsdMX366KhwX5bU5AFuyPC6HyWSisqmTQ7mVHMqrpKi29bzX/d2dWBAXxMK4IOKDvRFdJBrvYkxVeYwXligPk8lEd88gja1qGlp7aG7roenMo7mth7auPq60sgkE4Oxgi7uLHe7OStyclbg6K3F3scPNSYmLky1uTkoUNtLzLDiWKI/Jxqq8jAHjpbyM0DHczz8KjvJR1WmMJhNigZC7ghP5fvR8XOU3brIea3Q6HW9v+4JcOxk7qssAc5K4DSGR/GDGbIIcJy/T7bViMBr5qryS19MzyW1uAcx74ivCQng4eQYJ3l5X9T1TZfJp7enn86xCNp/Kp1ndN3o+wM2HLo0DzT3mO89YlQPPbYgm0c/pun5nqsjjSrR293Eot5Ij+VWcKq0/L9Gao62cOdEBzI8JYnaUP/a2U8sHaDKZivLQ6Q20dvTR0tFLS3vvece2zj7aOvvQ6gxX9V1ymRgXRyWuTrY4OShwtJPT0dpIysx4XF3scLJT4Ghvg6O9Ajtb2ZSJmhpLrMrLGDDeyssI5T3tPJ93gANNFYDZqfe7EbN5KDwZhdhyUmif26kqetW8kHmcvTXmNgsFAjaGRvKDpNkEOFzfwjcZmEwmMuob+U965mjWXoCZPt58O3kmS0OCLuuTNNUmY7M1po73T+RzsGwAnclcHkKAgRR/Kf9vVSxJAd7XPWlONXlcDf1DGtKKajmcV8mxgmp6B89GLomEAhKCVTyxcR5xQRcqvDqdjh07drB69ZrLpsMfKcx5vLCGxo4ekkJUhKimjkXzapmO/cNkMtHdOzSqyLR39dPeZT62dfXT2d1PR/cA/ef0m6tBLBLiYGeDvVKOg50NjnY22NvJsVfKsbM952grQ2krR6mQYquQoVTILC6q6lqwFmacQoQ6uPGf+XeQ1lrDn3P3U9DdwgsFh/mgIosfxizg1sD4iyaNm0wiXdx4feVG8ttbeDHzBPvrqvisrIit5cVsDI3iiaTUKaHECAQCUvx8SPHzoay9gzczsthWVEJmQxOZDdsIcHLkoVlJ3BwThc00mGyNJihuNXC8WjKquDjKB9EON5FfZ+S+14sJcndm04xo1iVG4mpneRbAiUZpI2P5jDCWzwhDbzCSW9nE0YIqjhVUU9XcRVZ5A3Lppae/cwtvGoxGTCaz0nOugjjy+umKRvKqmnj1yzTEIiGb5sVy/4qZ2Einft+brggEApwdFDg7KIgIunR272GNjo7uATq6++lSD9DVM0hHVx+5BaUoHVxQ9w2j7h2iu3eQwSEteoORTvUAneqBS37npZBKxCgVUhQ2UhRy89HWRoqNXIKNTIJ85HjmIZOKz3tIJSIk4jNHiQipWIRYLEIsFiISChGLhYhFQkQi4WhfFgoECIVCBAIuevNjMpkwmkyYjOaj0WjCYDBiMBrR688eB4c0tKs1lFS1AgI0OgMarR6tTo9Ga34Ma/QMa3QMaXQMD+sYGtYypNExMKRl8MxD3dNzoWAu9T+0Wl5uHKPJxI76Iv4v7xD1A2oAQuxd+UncIpZ5h02qGfFyGnFOWzP/yDrBwTqz9UIkEHBzaBRPJM3G38FxElp7/bT29fNedg7/O51H75kIJScbOfckxnNPYjxuyrML+lS6kzxe0cEz2wqpaDMnT0zwdeR3G2KIUdmTVdPIZ5mF7M0vY+hMcT2xUMj88AA2zYxhfngAkqsIL59K8hgLGjt6OFlcy6Z5sRcdm80dap5/53PWL53LwvjQC7L86g3GM5O++Xxrdx/2CvM21InCGl7bkca3V6Wwclb4+F/MBPBN6x9X4lLy0Or0qHuHUPcN0dtnPvb0DdPTN0Rv/zB9AyMPDb39w/QPahgY1DA4fHnH428Set0wpz7/tXXbaKKUlxE0Bj0fVmbzSuExurXmpHEzXH34adwSZrr5TmhbRriaiedSSsz3klIJnAKWmHMZ0GrZnFfI25nZNPSYo3YkIhHrI8N5cFYSEe5uU2IyblIP8YcdxezIbwbAxVbKz1ZHcGuSzwWLaf+whl15ZXyWWUBefcvoeRelgrUJEWxIiiLc69JRZlNBHhNJQ1s3v3ltM5XdWoY1egK8nFkUF8yypFDCfC4frafR6fnDB19R3dLF+z+/e4JaPL5Y+8f5jLU89Aaz5aJ/UHtGmdEyOKRjYEjD4JCWoeEz1opzrBbD2rMWjZGHVqdHpzOg1RvMR50Bvd4wah25VC6dG0EkMltzJGIRRqMepa3NqPVn1CI0Yh2SiLGRm61GNjLJqEXJViFFYSPD1kaK0aBhzowI67bRRCMTiXkwLJlbA+J4rSSNt8oyyOpo4I4D77HUO5SnYhcR7jg2WVTHkgR3L95efQunW5t5Mes4h+tr2FxWyGflRawPjuD7SamEOFlmRNXXsZVKuX9mIvckxbO3rIK3TmWT09TMloIithQUMdvfl3sT48ZlII8FGr2BN45W8/KBCoZ0BoQCuG92AD9eFoaD4uITpVIu47bkWG5LjqWitZMvsgrZdrqYzv5B3j2WzbvHsonwcmNDUhQ3JUTgory+EPNvCh5OSjbGubNk2QoaOns5XljD8YJq3v8qE4lIRICnM8/dvxJ/DycEAgFFta109w+RHO5LaX07pQ3thJ7xfRnxi7Fi5VKIRULslTbYK8e37pPRaMJgNGIwGEe3gIxGo/l4senQZO67wnO2mARCwejWk1Bwdht1LH1erhar8jIO2Enl/CRuMd8KmcE/C4+yuTqX/U3lHGgqZ2NALD+OWYjK1mGym3kBiR5evLvmVnLamnkpK439dVV8UVHM1opi1gSF80RSKhFTJE+MWChkTUQYayLCON3YzNuZ2ewpLSettp602npcJWLUp3O5LT7uhpPejRWHy9r57bZCqjvM++WzApx4dn0MUd6XvwM5lxAPF36yZgE/XDmX42W1fJ5VyKGSKkqa2ynZcZj/23WUeeEBbEiKYlFEIFKxdQq4FHKpmEg/DyL9PHh4dQrq/iEKa1s5XlB9xk/APHF39w3y0tbjlDe2E+jpzOpZkayYGQaYw3GtWLEEzIqIaEo7Bp+LdeYaRzwV9vxx1k08HJ7K3/MPsauhhM9r8tlRV8TdwUk8FjXXIsOrE9y9eHP1JgraW3kp+yR7asrZUVXKjqpSVgSE8IOk2cS4XdrJzdJIVHmRqLqJpt5e3svK4ZPcAjo0Gv5w8Cj/OJ7ObXEx3DsjHj9Hx0lpX33XIL/7soi9ReY8JW52Mn65JoKNCarr9peSiEQsigxiUWQQ6oEhduaVsjW7iIKGVg4VV3GouAp7uYxVcWGsiQtjmu0ejwuOShvmRgcwNzrgvPNzYwJJifTneEE1L209RkygJ75ujsDFnSCtWLFy40xbn5dfHH+XJ5M24iq/+rvW8Savs4nn8w6S1lYDmMOrHwibxcPhqdhLL5134kYYC3NecWc7L2efZGdV6Wiyu4W+AXw/MZVZXj5j19gJQj0wwB8/3UK21kBNtxow575ZHBLE/TMSmOM/fhWtz2VYZ+C1w1X861AFGr0RkVDAg3MC+OGyUOzk4+NbUNHaybbTRXx5uoTW3v7R884yMbemJrJ+RhSBblMn9894cDVjRm8wnpfB2GQyIRAI+PvmwxTXtfGfJ28bPTfVsfq8nI9VHhdiDZUeQ/Y053L8aBX3Bs7nnoD52FhA7pU4F2/+u/gejrdU89e8g+R3N/NK0XH+W5HFIxGzuTd0pkXliBkh0sWNV5avo6J7Dq+cTmdrRTGH62s4XF9DspcP309MZb6P/5SZqG2lUuY6OfC71atJq2/knczTHKup5UBFFQcqqgh2cebepARujonEVjo+/4/9xa08u72Iuq5BAFKDnHluQwxhHnbj8nsjhHi48OSq+fxwxVxOVTWwNbuIfYUVdGl0vH74FK8fPkW0yoO1CRGsjg/HzRp2fVEaO3o4XdHI7Ch/PJzszm4h9Q8hEJiTpF3MPF/d0kVdazeJIarLJsqzYsXK5Zm2ykuEvTflhk5er9jP5/WneCx0OWtUiQgFk597Za5nIHM8AtjbWMoL+Ycp7+3g+byDvFWWweORc7kzOBGZyPL+NSFOLrywZA0/mjGHV3My2FxWQEZzA/c1bybW1YPvJaawIjDUIotWXgyhQMCi4EAWBQdS2dnF+9k5fF5QRGVnF7/dd4C/HT7GLbFR3JMYT5DL2FgjajsHeHZ7EQdK2gDwtJfzq5siWRvnNaHKn0goJDXEj9QQP34xMMgLH31Ok8CGtMo6ChtbKWxs5a87j5Aa7MuahAiWR4eglF9b2YHpjEAAO9KL+eRwLimRfsT4e3Ikv4qdGcU8e9/KS/oV7Egv5q3dGQgEEO7jTlKoiplhviSGqHCwKjNWrFw103bbqL29ndO6Jl4u20PzkLkeTpidFz+IWE2yS8gkt/IsBqORrbUF/LPw6GiOGG+FPU9Ez2dTQNwNJ7obTxNnc38f/8nL5MPiXIb15jwjIY7OPJqQzIaQyKvKMTIZXE4mfRoNn+UX8X52zuiWEsC8AH++lRTP4uDAq66Rcy5DWgP/PlTBq0eq0OqNSEQCHpoXyA+WhGIrm1xF9Vx59Gp07M4rY0dOCbn1zaPvkYpFLIoIYk18OAvCA5FdpEjkdOFqx0zPwDAHcyvYn11OV98gISpXksP9uCkl8pKfeW9fJl8cL6CmtfuC10JUriSFqEgMUZEUosLNUTkm13OjWLdJzscqjwuxlgcYA76e50Vj0PFJXRpvVx6iXz8MwBzXMJ4IX0Wwneckt/YsWoOBzdU5vFx0jNYhsy+Cv9KJH0TPZ51f9HUtmDAxA61zaJB3CrJ5p+A0fVpzgjhvpR0Px83kzohYFBLL2gq7GpkYTSaO19TxfnYOByuqRn19VPb23JkQy+1xMVdV1dpkMrGnsJXffVlEo9qc+2d+qCvPrIsmxN2yF6e6TjU7c0vZkVNCVXvX6HlbmZSlUcGsigtjdog/0mkSvTDC9Y6ZYa0euVR8Vb4u7T39ZJc1klXeQGZ5AzUtXRe8x8fNgcRgFQnB3iSEqAg4E5o90VgX6/OxyuNCrMrLGHCpJHVq7QBvVBxgS306BpMRIQJuUiXxSOgy3OWWE7Y8rNfx34osXitJo0tj9ocIsXflB9HzWe0bec1bMhM50Ho1Gj4ozuHNvCw6hsxtd5TJuT8mkfujE3G2sYz8Itcqk3p1Dx+ezuXTvELUw2YFWCIUsio8lHuS4pmhunhdoar2fp7ZVsjR8g4AVI42/GZtJCujPS3KP+hK8jCZTJQ0t7Mjt4RduWW09JwtEmlvI2N5dCir4sJIDvI9z4l1qjIZi1NX7yDZFQ2crmjkdEUTpQ1tF1RFdrSVEx/sTXyQN/HB3kT6eVy2xMFYYV2sz8cqjwuxKi9jwJUy7NYPdPJK2R4OtBYAIBNKuDtgLvcGLUAptpw95wGdlvfKT/Gf0pP0aM0LZriDOz+Mmc8KVfhVL36TMdCG9Xo+KyvktdxT1PaqAZCLxdwZEcu342biaze5yuJ131nr9OwqLeO/2bmjVa0BwlxduCsxjo3RkdjJZAxo9Lx8sII3jlahM5iQioQ8sjCIxxeFYCO1PCvFtcjDaDSRU9fE7rwydueX0dk/OPqak60Ny6NDWBUXzsxA1XVbCycbS1ic+oY05FU1k1vZRE5lIwXVLQyfKQExglgkJMLXnfhgb+ICvYgL8sLDaewdvi1BHpaEVR4XYlVexoCrLQ+Qr67jn6W7yO2uBcBRouDbwUvY5JeMRGg5+/l92mHeKT/FG6Xp9OvMWzLRjh78IGYBS71Dr6jETOZAMxiN7Kou49WcUxR0mHOYiAQC1gZH8N34WUS7Tk624bGQSUFLKx+ezmNbUcmov4+NWEKcawil9UI6+s31ShaHu/HMumgCXC03aud65WEwGsmsbmRXXilfFVbQPTA0+pqLUsGy6BBWxIYyM8BnSllkLHFx0ukNlNS3kVvZRG5VE7mVTXT0Dl7wPg8nJbGBXsQEeBId4EmUnwc2shu7BkuUx2RilceFWJWXMeBaahuZTCaOtBXzctluagfMpn1vGyceDV3OCq84i4hMGqFHO8Qbpem8W3aKAb0WuDolxhIGmslk4kRjHa/mZnC0oXb0/DyVP9+NnzXhYdZjKZPe4WG+KCzmrfRCaptkmPTmrTGpxMCdqR78v6UJ2Fl4lM5YyENvMJJRVc/uvDL2FZbTO6QZfc3Z1oal0SGsiAllVpCPxTpyj2AJY+ZKmEwmmjp7yalsIr+6mbyqZsob2zF8Lc+7UCAg2NuFmEBPYvzNCk2Ql8s1KZNTQR4TiVUeF2LN8zLBCAQCFnpEMdctnC8bs3m94iuahrp5Ou8T/lt9lO+FrSTV9crWjYnAQWrDU7GLeCgsmTdL03mvPJNCdSuPHPuUaCdPnoieN+kVrC+FQCBgro8/c338Keho5fXcU+yoLOVYYy3HGmuJcHblO/GzWBccgdTCF7avI0BEXbOMhgZnTEYTQiEI5V0YpJ18WFDJF6WnWBcVzp3xscR6WY6D+FgjFgmZE+rPnFB/fr1hCemVdewrqOCrwgq6Bob4NCOfTzPycbCRszgqiGXRIcwJ8Z/WUUvjiUAgQOXqgMrVYTS6aUijo6i2lbzqJgpqWimobqa9Z4Dyxg7KGzv4/Jh5q1wuERPu60aUvyfRAR5E+Xng5+5krcFkZUrxjba8fJ0hvZaPak/wXvVhBvTmO8cZzkF8P2wl0Y6TUxX6UnRpBnnrjBIzYomJcvTgiej5LFeFjXnBrLGmvq+Ht/Oz+ag4j0G9eYvFQ6HkgdhE7o6Mx0E2fv5HYyETk8nE1pwm/rizmLY+c19ZHuXB02ujsJUL+LygiI9z86nqOhsSG+Xhzu1xMWyIjsBOZjnWmPHsIzqDgczqBvbml48qMiMopBIWRgSxPCaEeWEB2FpIjSlLHTPXQ5u6n4KaFgqqmymsbaWotpWBYe0F77OVS4nwdSfSz/1MPSf3UYVmOsljLLDK40Ks20ZjwI0oLyOotYO8U3WIT2vT0JkMACz2iOaR0GUEKS2rps/FlJgIB3e+Hz2PlT4RGPR6ix5oPZphPijK5Z2CbNoGzQUJFWIJt0fE8GDMDPwdHMf8N290oBU39/LM1kIyaszhrQEuCp5ZH83i8PN9eEwmExn1jXycm8+u0nJ0BnNfkovFrI4I5fa4GGb6XH/9orFioiZjg9FIdk0T+wrMisy55QmkYhGzg/1YGh3C4sggnCex8vV0XpyMRhO1bd0U1rZQVNNKUV0rpfVtaHSGC95rI5MQpnIlVOWKtruZW1YvIczX4xtvLZvO/eN6sSovY8BYKC8jNA9183r5fnY1ncaICSECVnsn8p2QpXgrnMaoxWNDt2aQN0vTeb88k/4zSkyovSvfDU9FkFfN2ptusuiBpjHo2VZRwpt5mZR0mf2PBMCKgFC+HTeDWZ5jt8hf70DrGdLxwr4y3j9Zi8FoQi4R8sSSUB6eH4jsCrlOuoeG+KKgmI9z86noPJvTI9DZiVtjo9kUE4WbcnKceidjMjYaTRQ0tLC3sJyvCiqo7+oZfU0oEJDg78WSyGCWRAXj7zqxY+2btjjpDUaqW7ooOmOZKalvo7yh/YLoJjBXaw/wdCLMx230EapyxcXech3Sx5pvWv+4GqzKyxgwlsrLCFX9rbxavo9DrUUAiAUiNvkm82DwIlxk41uL5lpRa4Z4uyyDd8tP0XcmOslNIOXHSUvZFBSPRGjZPiUmk4ljjbW8mZfFofrq0fOxrh58O24Ga4LCb9gv5loHmtFoYkt2A3/ZXUJHv1kxXBPrya9uikLlaHNNv20ymchpauGTvAJ2FJcyqDNvmYnOlCq4NS6GRUEBE+rUOtmTsclkoqK1k/1FlewvrKCoqe2814PdnVkSFcySyGBifDzH3TdjsuVhCRiMRmpbuympb6OotoW03FI6h4z0Dmou+n5nOwWhKldCVK6EeLsSqnIh0MsFG+n0k5+1f1yIVXkZA8ZDeRmhUF3Pv8r3cqqzEgC5SMKd/nP5VuB87CXXtoiNN33aYd6ryOSt0gzUWrOfgY+tA49EzOaWwHiLrJ30dcq7O3grL5vPyovQGMx3gR4KJfdFJ3B3VDxO8uuT+bUMtILGHp7eWkB2nRqAYDdbnl0fw7xQ1+v67XPp12jZWVLG5vwCshvPpuJ3USi4OSaSW2KjCXUd2z58MSxtMm5S93KwqIqDxZWcqmpAbzSOvuaiVLAoMohFEUHMDvEbl8XR0uQx2YzIY/Xq1XQPaChtaKesvp3yxnbKGjqoa+++IKEemOs/+bo5EuztSrCXC8FeLgR6ORPg4YR0Cm89WfvHhViVlzFgPJWXETI6K/h32V4KexoAUIrl3BM4jzv952IrthxHTAD10AC/3fkRaaI+OjRmnxJ3uZJvh6dwV3ASthaWuv9idA4N8mFxLu8V5tB+xi9GJhJzc2gk98ckEenidk3fdzUDTT2o5W97S/kgvQ6TCWylIn64LJQH5gQiFY99CH1FRydb8gv5rKCYzsGz+TvivDy4JTaatZHhOMjHx4nZkifj3qFhjpTWcLCokqNlNQxozjqbysQiUoP9WBgZyILwILwcx8YKasnymAyuJI8hrY6qpk7KGtqpaOqgvLGTiqYO1P1DF/k2EAkF+Lg6EujlTKDn2UeApzO2csufj6z940KsyssYMBHKC5zNEfNq+T4q+80J2BwlCu4PWsgtfinIRZYxCEc61ZKVy9lSV8h/StJoGTKnd3eU2vBA2CzuDZmJo8yyLEcXQ2PQ82VlKW/nZ48mvQNI9fblwZgklvkHX1VW18sNNKPRxMeZ9Ty/u4TuQfOWzvp4b365JhJPh/HPwKwzGDhUVcOW/EIOVVaPWh0kIhHLQoLYFBvF/MCAGy7Yed5vTpHJWKs3Ry4dKKrkUEkVzeq+814P83RlYUQgC8IDiffzsuh6YFOJ65GHyWSiq2+QisYOKpo6qWo2Pyqbu+gfuvjWE4Cbgy3+Hs4EejoR4OGMv6cTfm6OeLnYW0zGZmv/uBCr8jIGTJTyMoLRZGRfcz6vV3xF/WAnAC4yOx4MWsRG31lIJzlb79c7ldZg4IvafF4tPkFtvzmM11Ys5e6QJB4KS8bdxrJ8eC6GyWQiq7WJt/Oz2F1djuFMF/axs+feqATuiIjF8TJbSpcaaDn1ap7ZWkBug9l5NMxDybPrY5gdPP796GJ0DgyyraiELfmFlLR3jJ53tVWwPiqCTTFRRLhfm9XpYkzFydhkMlHW0sGR0moOl1STW9eM8ZypzMFGztwwfxaGBzI3LAAn26tXzqeiPMaTsZSHyWSivWeA6uZOqlu6znt0XiRj8AgSsQgfVwf8PZzwdXPE190RvzNHD0e7Cc1RY+0fFzJtlZdXXnmFv/71r7S0tBAfH89LL71EcnLyJd//6aef8pvf/IaamhpCQ0P5y1/+wpo1a67qtyZaeRlBbzSwqymHNyr20zysBsBD7sC3g5ewVpWEeJIcZS/VqQxGIzsbinm16AQlPWYHSalQxC2BcXwnYjb+SsuKproUTf29vF+Yw/+K81BrzDWg5GIxN4dEcV9M4kW3lL4uk85+DX/dU8rHmfWYTGAnE/Oj5WHcN9sfiYWktS9qbeOz/CK2FZfQNXjWHB/p7saG6EjWR4Xjrry+KtXTYTJWDwxxrKyGQyXVHC+vOS/Dr1AgIM7Xk7lhAcwLCyBG5XHZxW46yGMsmSh59A0OU9PaTU1Ll/nY2k1dazf17Wq0+gtDuUeQikWjCft83RxGn6tcHPB2sUcxxltR1v5xIdNSefn444+57777ePXVV0lJSeHFF1/k008/pbS0FHf3C2vbnDhxggULFvCnP/2JtWvX8uGHH/KXv/yF7OxsYmJirvh7k6W8jKAz6tnakMnblYdo1/QC4GXjxLeDF7PGO3HClZirqRh8qLmCfxefIKvD7MMjFAhY7RPJI5GziXaaGllhh/U6tlaU8E5BNsWd7aPnkz19uDc6gZWBoaNRSiMyWblqNZ9mN/G3vWX0DJm3iDYlqfj56gjc7SynSOe56AwGDlfV8HlBEQcqqtCd2VYSCgTM8fdjY0wky0ODsZVe/YQ93SZjvcFIbn0zR0urOVJaQ2lz+3mvO9naMCfEn7lh5ozAbnbnh/lON3ncKJMtD4PRSGt3P3VtZoWmvk1Nfbua+jY1jZ096A3Gy37eUWmDt4s9Khd7PJ3t8XKxx8vZDq8zz+1srs1PcbLlYYlMS+UlJSWFWbNm8fLLLwNgNBrx9fXliSee4Oc///kF77/jjjsYGBjgyy+/HD2XmppKQkICr7766hV/b7KVlxGGDTo+r8/g3arDdGnNybhUNs58O3gxq7wTJkyJuZZOdaq9jn8Xn+Bwc+XouXkegXw3cjZz3AMmPZna1WAymchobuC9wtPnbSm5KWy5KyKOu6PicJHKeeXjnezpcKK4xew3EeVlz3MbopkZ4DyZzb8m1EPD7Cgp5YuCYk43nY1WspGIWR4awoboSOYG+F3RP2a6T8YtPX0cLa3heHkNaeV19GvOzzAb7uXG3FCzMpPk743AZJrW8rhWLLl/6A1GWrp6aezoob6jh6aOHho6emho76Gps+eSod3norSR4emkxMPJDg8nOzyd7PBwUuLuZIe7oxIPR+V51htLlsdkMe2UF61Wi0KhYPPmzWzcuHH0/P33349arWbr1q0XfMbPz48nn3ySH/3oR6PnnnnmGb744gtyc3Ov+JsjF1/XUo+vh89YXMYNMWzQsqUug/erD9OlNUfK+CpceCh4MSu94sddibmeTlXc3crrJWnsqC8aXfxjnDz5bsRsVvlEWIzj3JVoGejjw6I8/leSNxqlJDSI8dQG09RivgZ7uZifrAznnhR/RFO4tkttt5qthcVsKyqhpls9et5FoeDZFUtYFR56yc9qtVp27dr1jZiMdQYDefUtHDujzBQ2np9TxkYiJilAhYO2j4fWriRC5TEllPbxZCov1n1DGpo7zcpNY2cvzZ29tHT10tzVR3NXLz0Dw1f1PUq5FDdHJW4OtrjYK+jtaCElKQ4PJ3tc7BW4OtjiYm87JaKlxoNpV5ixo6MDg8GAh8f5KfU9PDwoKSm56GdaWlou+v6WlpaLvl+j0aDRnNWue3vNWzU/K/wzt2nWssJjPlLh5HUoEQJu90lhnVcinzVk8GHtceoHO3k2fzNvVhzg/sCFrPCIHTclRncmCdrI8WoIUTrz/Myb+EHkPN4uP8WW2jwKulv4Qdrn+Nk68kDILG72j8FGbNkTmYtUzhMJyTwSO4N9tZX8tziXzCIDTb1mxcXOeZCHFvhyU4wrRoMe46W31S0eb6Utj6XM5NHkGeS3tLG9uJSdpeV0Dg7iaiO/7P9fr9djMpkY0mgwmUwXLNYj57qHhthXXomjXM5sf1+Lqs90LcSp3IlTufP4kmS6BoY4WVnHiYo6TlbU09E/yPFyc+Xzna/8Dzc7BSlBvqQE+5Ic5IOH/fX5FU1lrmcOsRTkYiGBHo4Eejhe9PVBjZbW7n5au/vMR3U/rd39tKn7ae8ZoE3dz8Cwlv5hLf1nHItHOF599MLfk4pxsVPgZGeDk1KBs70NzkoFjkobnJRyHGxtcFTKcVLa4GBrg1w6dfPdnMtY9ZFr+fy4Wl6amppQqVScOHGC2bNnj57/6U9/yuHDh0lPT7/gM1KplHfffZe77rpr9Ny//vUvnn32WVpbWy94/29/+1ueffbZC85v2PsQElspCoOM2MEQgodVCJl8i4EWA5miVk6KmhkSmBOvOZlkzNWriDG6ILKANn6dfpOeY/pOjhu6GMC8wtsiYq7ImbliF+wEU2cAVgxqeL9CxIBDCzqZ2fFVgoAkGzvmKhzwE8umzZ22wWSiYnCIMIXNRa/JaDKR2zeAl0yK5zlFEU0mE0ZACOd9rqR/kFM9fbRotLRqdaxxc2aJi+P4X8gEYTKZaB3SUdEzSLl6iOreYfRfmx7d5BKCHWwIdrAh0F6O4gplIaxMfTR6I33Devo0Bvo0evqGzx77tQb6NXr6NQa0hmtfSsVCATYSITYSEQqpEBuJELlEhFwsRC4587dYhOzM33KxcPS5VCSYNnPVCIODg9x9992Tb3lxdXVFJBJdoHS0trbi6XlxR1BPT89rev8vfvELnnzyydG/e3t78fX15T7VJvYNHqdD2026XSF1bu3c6r2GFOcEhILJVRA2AoN6DZ81ZPC/uhN06wb5UlJFtrybewPms9orHskYhVjrdDr27dvH8uXLb8icdzswqNfyWW0B75SfomGwh72Gdg6butnoH80DIbMItJsa/iKP6XRs37Ob/gAfPi4vpKy7k/ShXtKHeol2cefO8BjWBYdPiQR+N8KQTkfWkeP8LbcAe7GIDTHR3JkQS6Dz2Uizcy0xyw0G2gcGyWtp5el9B1iekszKsBAMRuOU2Uq8GkbGzILFiyls6iC9qoH0qnqKm9ppH9bRPqzjZGsvAgFEerkxK9CH5CAfEv28UFhIZeyxZKzmkOnCpeQxqNHS2TtId98Q3f1DdPaZn3f1DaIeGEbdP4S6f4iegWG6+4fQG4zojaYzStH1mX1tpBJs5RIUcikKmQSFTIJcev5RJhEjl4qRScXIJWJkEjEyiQipRIxELEImFiEZeYiEiEUiJGIhEpEIkUiASChEJBQiFgkRCc0Kk1AgQCg0HwUCwUVlYjKZMJnMN0kmkwmjyYTBaMRoNB/1BhN6gxGD0YhOb0BvMNKtVl/1tU+Iw25ycjIvvfQSYHbY9fPz4/vf//4lHXYHBwfZvn376Lk5c+YQFxd3zQ679k727G05ypaGXfTpzU6zAbY+3OW3gUTHaIvQWgf1GrbUp/NB9dFRnxhPuSP3By1knc+MG84TMx771XqjkT0NJfyn5CT53WZHUQGwVBXGd8JTmeHqYxGyvRTnykQsFpPZ0siHxXnsqCpFe6bys1IiZUNoJHdHxhPtemFU3HSioaubV7Z/SbVISk5zCy4KBRuiI7g1NpoglwsV0veycnjpeBonv//ItFJaRrjUmOkZGuZUVQMnK+pIr6qnqq3rvM+JhUJifDxIDvJlVpAPif7e06K2z1T2eRkPxkIeJpOJQY2OnoEh1P3D9A4O09M/TM+g+XnfoIbewWF6BzX0DWroH9LQP6yhf0hL/6DmvJIZ0wmDdpi8t345+Q67YA6Vvv/++3nttddITk7mxRdf5JNPPqGkpAQPDw/uu+8+VCoVf/rTnwBzqPTChQv585//zE033cRHH33EH//4xxsKlR4yDPNl0362N33FkMHsoBVuF8zdfhuIcri0I+NEMmzQ8ll9Bu9XH6VTY46AcZfZc2/gAjb4zrzujL3jOfGYTCZOtdfzRulJ9jeVj56Pc/biwbAUVvtGWGQhyEvJpGtokC1lhXxYnEd1T/fo+Xh3T+6KiGNdSMS0tMacK4+OoWEOVlaxvbiUzPpG/rBqObfHx4xaYNr6+/nV7q8QC4X8e9P6aWd1gasfM229/WRU1pNeVc/Jinqa1L3nvS4WmZWZWYE+zAjwISnAG9spaJmxKi/nM9nyMJlMaHQGBoe1DGi0DAybH4PDWoa0OgY1OoY15uOQRodGp2dYq2dYq2P4zHOd3oBGp0erN6DV6dHozJYPncGAXm9AZzBbQ4xG07gqSiKhAIlYZLb2iISg13DgxR9ZhvIC8PLLL48mqUtISOCf//wnKSkpACxatIiAgADeeeed0fd/+umn/PrXvx5NUvf888+PSZK6Pl0/nzfuYXfLYXRGs2NQvGMkd/iuJ9QuYEyu9UYZNujY1pDJe1WHaTuTJ8ZJasvdAfO4xS8Fpfja8o9M1ECr7O3gzdJ0Pq/JR3vG89XTxo77w2ZxZ1Ai9lLLyZtyJZkYTSbSGuv4sDiPvTXlo7lUlBIp60IiuCsyjljXa49CMZpMNPX34mPnMCbXMVZcSh5NvX3YSiXn1VTKbmji8S+28+zyJawMD/1GKy9fp7G7h4zKBjKq6smoaqCl5/zyBSKhgEhvd2YG+jAjQEWSvzeO15D5d7KY7MXa0vimycNkMmE4s9VjMBjP2QY6syVkNKHT69j/1X6WLluKRCzBhGl0S8l8NPvPiURCxELheVtO52IxodKTwdXkeenUqPmsYRf7245hMJkXpplOcdzptw5/28kPrwbQGvXsaMzmnarDNA+ZrQD2Ehtu95vNHf5zcJAqrup7JnqgdQwP8L/KbN4vz6LzTCFIhVjCLQHxPBA2iwAL8Iu5Fpl0DA2wpbSQ/xXnUdOrHj0f6eLGXRFxbAiNxEF2ZcWsoruTl7JPUqnuoq5XzcbQSJ6cOfeyZQwmiquVh85g4L/ZufwrLYOMJx6x6K3BG2GstgUaunvIrGoks6aBzKoGGrp7L3hfiIeLWZEJUDEjQDVmxSXHkm/aYn0lrPK4kGkXKm2puMgc+U7wXaxXLWdz/U4Ot58kszuPzO485rjM4HbftagUk5tZVioUc7NvMutUM9jTnMs7VYeoHejgjcoDfFhzjE1+KdwdMA9XmWVNdq5yW56Ins93I2azvbaQN8vSKetp5/2KTP5bkckS71AeDEsm1d1/Six+rja2PJKQzHfjZ3GyuZ6PivPZVV1GcWc7Tx/fzx9OHmZNUBh/mL8MxSW2lNoHB/jp4T0M6XX8ZNY8hAIBz2cc5bPyIh6KnTHBV3T99AwPc7ymjmRfFQKBAL3ROKYFIqcTAoEAX2dHfJ0duXlmNADN6j4yqxvIqmkkq6aRqrYuKlo7qWjt5OP0PAC8HO1I8leRFOBNgr83oR4u086yZcXKWPCNVF5G8JC78r3Q+9ioWsEn9V9yojOLE51ZpHVmM98tmVt91uBlM7nOmmKhiJtUSazyTuBASwHvVB2mvK+Z/1Yf5ZPaNNapZvCtwPmoFJNv0TgXmUjMrUHx3BIYx4nWGt4qS+dQcyX7m8rZ31ROhIM794fNYr1fNHILzxcD5sVotrcfs739eHZ4CV9UFPNRcR4lXR3kt7dcNufNv06n06fV8M+la0drLZV2dfCv0+k8EJOE0MKVuFP1Dagc7Gns6aWorY3nViwFsPh2WxpejnasS4xkXWIkAF39g2TXNpFZ3UB2TRMlzW00q/vYoS5hR645D5atTEqcrycJfl4k+HsT7+eFnXxq5texYmUs+UYrLyOoFJ78OPxhbh5Yxcd128nszuNIezrH2k+x0D2FW3xW4yG/8eq9N4JIIGS5VxzLPGM51l7KO1WHyFfXsaU+nS8aTrHcM477gxYQbGdZtYgEAgFzPQOZ6xlIVW8n75Rl8FlNPiU9bfzi1A6ezz3AncGJ3BMyAy/F5c2EloKj3IYHYpK4PzqRnLYW+nWaS1qRBnRatpQV8qOZcwhzOruN6SS3wVEmp0czjJMFbB1dij6Nhv9m57KzpAwnhQ3dg0OEupqv43LKy9+PHEcoELAiLIRId7cpYWWbaJyVCpZFh7AsOgSAAY2W/PoWsmoaOV3bRF59CwMaLWkVdaRV1AEgEECQmzMJft7E+ZmVmiA3lwmtqmzFiiVgVV7OIcDWh59FPkZlfy2f1H9JdncBB9vSONKeziK32dzisxo3+eTVSwKzMjDfPYJ5buGc7q7m7crDpHeWs7s5h93NOcx3i+D+oEXEOflNajsvRpC9C8/NXM1TcYv4pCqX98szaRzs4d/FJ3i9JI2VPhHcHzrL4kOtRxAIBCR6eF32PUfra9AbjSz3Dz7P/N/U34uzjcLisxTbyWT8Y8NN/HDebHaWlLG9qJRlr7/N2shwnlu59KJZdjV6Pe9m5TCg1fLyiXR8HOxZHhrC8rBgZqi8rdsgl8BWJiU1xI/UEPPYNRiNlLd2klPbZH7UNVPf1UNlWxeVbV1sySwAQCmTEuvrSayvJ/G+XsT5euKsvDqfOCtWpipW5eUiBCv9+UXk9yjvq+bj+u3kqovZ33acQ+0nWeI+h5t9VuEmm9xtGoFAQJJzEEnOQRT3NPJu1WEOthZytL2Eo+0lJDkFcm/QAmY5BE5qOy+Gg9SG70Sk8lBYMl81lfFueSbpbbXsrC9mZ30x0Y4e3Bc6i7V+UVNiS+ly7KouZ4anNy42ZxeTloE+Krq7CHF0QS6eGkMwyMWZ789N5ftzUylt76Cmq/uyYfDPLFvEvvJKjlbX0tDTy9uZ2bydmY2TjQ1LQ4JYGhLEvEB/bKwOj5dEJBQS4eVGhJcbd6bGA9DRN0BefQu5dc3k1jdTUN9C/9esMwAqJ3tifTyJ8fEg1teTSG/3KRmmbcXKpZgaM+ckEWoXyK+jfkBJbyWf1G8nv6eUfa1HOdB2wqzEqFZOuiUGINJBxZ8T76a2v533qo+wqymH7O5qsrOqCbJ1J0aoZIXRgATLWihEQiErfSJY6RNBcXcr75WfYmtdIYXqVn526kv+lLuf24MSuCckCR9bx8lu7nVhwoSP0uE8Z97MlkZqerv5y4KVk9iy6yfczZVwN9dLvi4Ti9kUG82m2GgGtTqO1dSyr7yCAxVVdA8NsTm/kM35hcjEIuYG+LM0JIglwUG4KW0n8CqmJq52tiyJCmZJVDBgrqpc3tpBfn0LefUt5NU3U9XeRWN3L43dvezOLwPMW3xB7s5EqzyIVnkQ4+NBuJcbcol1CbAyNbH23Ksgwj6Yp6N/RHFvOZ/U76DgHCVmsftsblatwt0ClBh/pRu/ib2F74Yu46Oa43xen0HVQBtVkjbST/yDuwPnscFnJgqx5Tn8RTp58Kfktfw0fgmfVOXyQUUWjYM9vF6Sxn9K0ljiHcq9oTOZ6xF4VY6iJpOJQ80VFKlbSXUPYIbr5ITAhzu58mFxHhqDHpnIPNw+Ks7HQ6Ekappn7gVQSCWsCAthRVgIOoOBzIZG9pdX8VVFJQ09vRyoqOJARRUA8V6eZkUmJIhwN9cpsXU42YhFQiK93Yn0duf2lDgA+oY1FDa0kt/QQkFDKwUNLbT09I9GNm3NLgLMeWeC3V2IUrkT5e1BtMqdcC+3aZEV2Mr05xuZ5+VGKeop59MGsxIDZmfaRW6zudlnFR7yS9+RTjS9uiE+qTnBBxWHGThTBNJeYsMm3xRu959tcWHW52IwGjnYXMF75Zkcb60ePR+gdOZbITO4JTDusonv+nQa3i/PpKC7mb0NpSzwCuZvKetxlikmNE9DeXcHTx3cRYSzGzM9VXxckk/b4ACvLF9HnNv5ztW7qsqoUHdyc2jUhCaym4y8FSaTidL2DvafUV5ym8+vGu9tb8fi4CCWBAeS6u+LbAK316ZjHo/23n4KG9sobGylsKGVgsZWOvsHL3ifUCAg0M1pVCGK8HYj1M2JYwcPTCt53AjTsX/cKJOR58WqvNwAxb0VfFq/g/wec1ijSCBkvmsKm3xWTXqI9Qg6nY5tO7/EGOfBR/Vp1A92AuY8Mqu9E7gnYB4BSsto66Wo6u3kvxVZbKnJo1+nAcDX1pGDNz1+2bvzfp0GmUjM6t2vk+Ci4unEFdhL5RM++Zxubebl7DTq+nqYp/JnQ2gkCe4XOvreuvV/ZLY0ApDs5cPNoVGsCQq7qiR4N4IlTMZt/f0crKxmf0UVJ2rqGNbrR1+zkYiZ4+/H4uBAFgQF4m0/vkq3JchjvDGZTLT09FPc1EZRYytFjW0UNbXR3jdw0fc7SsUkBPkS4W22zkR4ueHj5PCNjHL6JvSPa8WapG6KEWkfwtPRP6Skt5LNDTvIVRdzqD2Nw+0nmes6k00+q/FVXD4aZSIQI2SNzyw2BaRypLWI96uPUtBTz9aGTLY2ZDLfLYJ7AueR6BRokab6IHsXnk5awVOxi9ham8/7FVks9Q69bFv1RiNKiYyavi5q+rr4zRnFZTJI9PDizdWbMJpMl9zyMplM3BkRi0Qo5GRTPRnNDWQ0N/DMsf0s8Q9iY2gUi/0CR7eephvuSiV3xMdyR3wsQzodabX1HKys4kBFNa39/eyvqGL/me2lcDdXFgYFsCg4kCSVtzVR3nUgEAjwcrTDy9Fu1H8GzBaa4qZ2ipraKG5qo6SpjYbuXtRaPYdKqjlUctYKqpBKCPVwJczLlTBP8yPU0xUHG8spBWJl+jI9Z8IJJsI+mF9H/YCyviq2NOwiu7uAYx2nON6RSYpLIrf4rCbAAsoOiARCFnvGsMgjmjx1He9XH+FoW8lohFKkvYp7AuexxCMGsQUWVLSVSLk7ZAZ3BSeN1k+6Ev8uPk60kyfRTh7j3LorczlfHYFAwK3hMdwaHkNTfy/bKkr4vLyI0q4OdleXs7u6HHupjDVBYWwIjSTFy3faJomzkUhYcsb35bkVJorb2jlYWc2hympympopbe+gtL2D19MzsZPJmBvgx8KgABYEBuBhp5zs5k9p3OyVuNkrWRBxNkqxs7eP97buwDkghIq2Lkqb2ylv7WRQqyO33hz1dC4e9kpCPFwI83QlxMOFUE9Xgtycrb40VsYUq/IyhoTZBfGLyO9R1V/HloZdZHTlcLIzm5Od2cxwiuUWn9WE2k1+6LJAICDeyZ94p3upHejgfzXH2NGYTXFvI7/O/Rgv+R5u95/DBt+Z11wIciIQCARXtECM3I1/WVfEU7GLcLrKWlCWgLfSnkcTknk0IZnizna+KC9ia0UxLQP9fFSSz0cl+XjZ2rEuOJz1oZFEu7hbpMVsLBAIBER5uBPl4c735qTQNTjEsZpaDlVWc7S6hu6hYXaXlrO71FzVPNLdjQVnFJlElRdSkeUp4VMNexs5QfY2rEmNH90S0BuM1HZ2U9bSMfoobW6nWd1Ha28/rb39HC+vHf0OgQB8nBwI9nAhxN2FEA8XAt2cCHRztoZwW7kupq3yYjSNXxnvKxGk9OP/RTxC7UAjnzfu5kRHFlnd+WR15xPrEMEtPquJsr/8tsdE4W/rys+jN/JI6DI216Wzue4kzcNq/lG6kzcq9rPeZyZ3+M/BW+E02U29akYqHX9UeRqZSMw8z6Apmxgt0sWNSJeF/CxlAenN9WwtL2ZnVRnNA328npfJ63mZBDk6sz44gvUhEQQ5WlaZiLHGWWHD+qgI1kdFYDAayWtu5XBVNUeqa8hvbqW4rZ3itnZeO3kKW6mEVD9f5gcGMD/QH38nx8lu/rRBLBIS7O5CsLsLq+PCR8/3DWuoaO2kvLWDipZOylo7qGjtpHtgiPquHuq7ejhUXHXed3k62BHs7kygmzNB7maFJtDNGVelwiLmSCuWybRVXt6o+RU3ie8jxmEOQsHkLFz+tip+FPZtbvO9ic8b9nC0PYP8nhLye0oIswtik2oVSU4xFjFAnaRKvhOylHsDF7C7KYf/1RyjeqCd/9Ue5+PaEyzyiOKugHnEOfpZRHsvx4ii8k7ZKZarwvCxnbjInfFCeG5tpXlLOVhXzbaKYvbXVlGl7uLFrBO8mHWCaFd31gVHsDY4fEIjliYDkVBIosqLRJUXP5o/h86BQY7W1HKkqoZjNbV0DQ6d5yvj6+jA/AB/5gX6k+rng73c8qyKUx07uYxEf28S/b3PO9/ZPzgaql3ZZn5UtXXRNTBES08fLT1951lqRr4rwNWJAFdH/F2dCHBzIsDVCT8XR6u1xsr0VV46tc18XPd3Dso+ZannnUTZp0yaEqOy8eT7ofdzu+9atjbu5WDbCcr6qvhzyb/wV6i42WclqS4zEE1S+85FLpKw0XcW631mkN5RwYc1x0nvLOdAayEHWguJtFdxV8BclnrGIBFaVvcxGI1sqcnDTiLDTa6kpr+TXyUuQyGeXhOdTCRmVWAoqwJD6dNq2FdTwbaKEo421FDY0UZhRxt/Tj/CDA9v1oVEsCYwDHfb6e8L4mKrYGN0JBujIzGaTBS1tnG0upaj1bWcbmyiXt3Dhzl5fJiTh1AgIM7Lk3kBfswN8CPB2wuJdYtp3HBRKnBRKkgJ9j3vvHpgiMr2Lqrauqhu76KmvXs0yV7fsIb8hhbyG1ou+D43O1v8XBzxd3XEz+Xsw9fZAaW1cOU3AstafcaQ+S43k6c7QJumnv/V/hVPeQBLPe4g0j550iwH7nIXvhN8F7f6rmFH0wH2tBymdrCRF8vewlO+nQ2qFSx0S0EinHzHNqFAyGy3MGa7hVHZ18JHtSfY1ZRDcW8jT+d9wkulu7nNL5WNvrNwlFpGZlSBQEDbUD+/PLUDMCtil0thD/BBRRYKsZRVPhEWX2foYthJZWwKi2ZTWDRdQ4Psri5ne2UJJ5vqyWptIqu1iWePHyDF25ebgsJZFRiKm8Iy/l/jiVAgIMbTgxhPDx6bncyAVktGfQPHqms5Vl1HZVcXOU3N5DQ18/KJdGylEpJ9fZjj78cslRfG6ZVBwmJxtLVhhq2KGQGq885r9XpqO9TUdHSf/2jvRj04THvfAO19A2TVNF7wnc62NqOKjMrZAR8nB3ycHVA52+Nhr5yyW8hWzmda53lROMg43rGdEx1fojEOAeAlD2SJx+2TqsSM0K8fYHfzYXY0H6Bfb86v4CRx4CbvJSz3mI9CfOPVhscyJ0G3tp/P6jL4tO4kXdp+AGRCMSu9E7jDfzahdpMfFj7CvsZSXitOI6ezkW+FzOSp2IXYnQmVHpHJ0pUrWLjr36i1Q9hJZKzzi+a2oHhinbwmvW/cKK0D/eysKmN7ZQnZrU2j54UCAalevqwJDmNVYCiuNrbfyLwVTb29HK+pG310Dw2d97pSJGR+SDBzA/yY7e+Hn6PDlO8T14ul9Y+eoWHqOtTUdqqp6+imtlNNfWcP9V1qugaGLvtZsVCIl6Md3k72qJzs8Xa0x/vM0cvRDg8H5RUtcJYmD0vAmqRuDLhYkrpBfR/H2reS1rkTrXEYsCwlZsgwzP7W42xv+oourRoAhciGlZ4LWeO1GEfp5f+Jl2M8BprWqGdfcx4f156gpPfswjjDOZDb/ecw3y3CYkKta/q6yO9uZp1f9Oi5EZksWL6UD6pz+LQ6h4aBntHXIxzcuS0ogQ3+0TjJpk6U0qVo6OthZ1UZO6pKyW07a4IXCgSkePmw0j8YUUUtd65b/42cjI0mEyVt7RyvqeNEbR2Z9Y0MnZMkD8DLzo7Z/r6k+vmQ6u837onyLImptFj3D2uo7+qhrlNNfVcPDV09NHb10NDdS5O6F73h8oEcAgG42ynxcrTD08EOT0c7PB2U5ucOZuXGXiZhz+7dU0IeE4VVeRkDLpdhd1Dfx7GObaR17BhVYjzlAaNKzGT5xIygM+o51nGKrY17aRwyLzISgZhF7rNZr1qOp9zt2r9zHCcek8lEnrqOj2tPcLC1EMOZCC9PuSO3+qWywWcmDhYYovx1mRhNJtLaavi0Kpc9DSWjOWSkQhHLVeHcFhTPHPeAaWFuru9Vs7OqjJ1VZeS2n1VkBMAsTxVrgs1bS56235zF+esMDA/z+udfgLcP6Q2N5Da1oDOev+j5OTqQ4udLip8PqX6+eE7j/DJTSXm5HAajkfa+ARq7ekYLVzZ299Ks7qVJ3Uezug+d4cr5o0RCAUqxEH93Vzwc7XC3U+Jmb4u7vRJ3e1vc7GxxtVPiYCOb9BvjicKqvIwBV1Me4GKWGE+5P4vdbyPKIXXSlRijyUhmVx5fNO6hvL8GAAECUl2S2KBaTrDS/6q/a6ImntbhHrbUpfN5fQY9OnPNlJEtpdv9ZhNmbzlbSpeTiVozxNbaAj6tzqFY3TZ63kthz6aAWG4JjMdfOXXCxi/HiCKzo7KUvI7W815L8vBm9RmnYF97x8lp4CTx9f4xqNWR1djEybp6TtbWk9/SeoFPjL+TIym+PszyVZHs64PK4fqtpZbGdFFeroTRaKJzYJDm7l6ae/po6emnRd03Gg3V2tNPe9/AVftDSUQiXO0UuNnZ4qJU4HzGadn1zHNnWwXOtjY42drgqLBBLJq6N0dW5WUMuJbaRoP6Po53bCetY8eoT4y7zJdF7rcS6zgHoWBytz5MJhNFveVsbdzLaXXh6Plo+zA2qJaT4Bh9Rc1+oieeYYOOfc15fFKXRuk5W0rxjv7c5p/KYo/oSY9SulqZFHa38GlVLtvqCujRDo+en+Xmyy0Bcaz2jUQpmfqRDTqdjv9u34ou0Jc9tZVkneMjAxDt6j4a3RTi6DLt7yav1D/6NBqyGszKTHpdA4WtbRcsaCp7e2b5qswPHxWBzk5TVm7fFOXlatAbjLSoe/hi915CYuLpHBimva+ftt4B2s4k5+voG6B3SHNN3ysQgL1cjrPSBgeFHCeFWaFxtJXjqLDBwUaOg0I+erS3keFgI0chlVhEv7IqL2PA9RRmHNT3caJjB2kdXzJsNFsNXKXeLPK4hTjHBYgmWYkBqB1oYGvTPk50ZI5uz/gqvFnvvYy5rrMuqRBM1sQzsqX0aW0a+1sLRtvsLFVys+8sbvZNxl0+OXlIrlUmGoOefY1lbK7O5VhLFSMDxkYkYaVPBLcExpHq7j9l0/V/XR7N/X3srSlnV3U5Gc0N5y3MQY7OrAwIYUVAKPHunlP2mi/HtfaPPo2GU/WNnKpvIKO+kYKWVgxfm1ZdFApm+ngz08es0ES4u02ZmkxW5eV8rkYeGp2ezv5B2vsG6OgboLN/cPTRNXDm2D9E18AgPUPDXO8qLBIKsJPLsJPLsLeRoZTLUMqkKOUy7ORSbGUybGUSlHIptlIpCpkUW5kUG6kEhVSCQiZBIZFgI5UgFYuuWxGyKi9jwI1UlR4yDHCyYyfHO7YzZDBH0zhLPVjgtolEp0WILSCEuV3Txc6mA3zVeoxho1m7d5Y6ssZrMcs85mErPt/HxBImno7hXj5vOMXn9Rl0aPoAc52lhe6R3OKXykznoAm9e7gRmTQP9rK1toAt1XlU9XWOnvdW2LMxIJZNAXEE2k2tLLeXk0fn0CD7ayvZXV3OsYba82pKedoqWe4fwsrAUFK8fKZNnpQbHTMDWi2nG5vNCk1DIzlNzWi/5kuhkEhI9PZixhmFJt7bE1upZeYjsoQ5xJIYa3noDUZ6hobpHhika2AI9eAw6sEh1APDdA8MoR4condYQ8/gMD1Dw6PHKzkfXysCAcglEmwkYuQSCXKJGKlYhEwsRioRIReb/5aKRUhEIiRiEVKRCLFIiBCora4mPCwUmVSCWChEJBQiFAgQCQUIBUJEQgEIzIECQoEAAea/AUbuCAf7+/nW4lSr8nKtyssIGsMQ6Z27ONq+jUFDLwAOElfmu21gpvMyJMLJ3yoY0A+yr+UoO5sP0q0zR8rIhTKWesxljdcS3OXma7ekiUdvNHCwtZBP606S010zej7A1o1bfFNYo0rETnLj4eFXYixkYjKZyOlsYktNf/nC6AAAO2xJREFULl/WFdGnO2smTnRRcXNALDf5RuEoG//ruVGuVh59Wg0H66rZU13OofoqBnS60dfspDIW+wWy3D+ERX6B2Eknf4xcL2M9ZjR6PQUtrZxqaCSzvomsxib6NOdvKwgFAiLc3Zih8iZJ5UWSyhtve7tptSUwXbAEeZhMJoZ1evqGNfQOaegdGqZvWEP/sJZ+jYa+YS0Dw1r6hjUMaLQManX0D2sY0OgY0GoZ0uoY1OgY0unQ6q+uyO1EYNAMU/rCL63Ky/UqLyNojcNkdO7laPsX9OvVANiKHZjnup4Ul1XIRJO/MOmMOo51ZLK9cR/1Q+bqrkKEpLgkss57GQFy1aQPtItR0dfClrp0djadZsigBcxJ5VZ4xXOLbwqRDqorfMP1M+aL05ltpc9q8jjaUjW6zSIRClnsFcrGgBgWeYVcsZjkZHE98hjW60lrqmNPdTn7airoHD6bX0MiFJLq7cty/xCW+gejsptazqvjvTgZTSbKOzrJbGgkq6GJU/WNNPf1XfA+d6Utid5eJHibSyDEeHggl0x8H7KExdqSmG7y0BuMDOl0DOv0DOt0DGv1DOn0aHR6NPqRo2H0ud5gRGswoDMY0OkNaA0GtDo9FVVV+Pj6YTSB3mjEaDRiMJkwGI0YjCaMJhMmkwkTZuXLZDIfRxR0AaAdGuTNx++xKi83qryMoDNqye4+wJG2z1Hr2gGwESlJdVnDHNebUIgnP6zUZDKRqy5mW9M+8ntKRs+HKYPwbLTnu0sfQGaBd8P9+mF2N+Wwue4kVf1no3si7VXc4pfCCq845KKxNaeP5+TTNtTH9roivqjJp0h9NoLHQSrnJt8oNvjHMMPVxyLuqEe4UXkYjEZOtzWzr6aCfbWVVKm7zns90sWN5f7BLPUPJtbN8v1kJmNxau7t43RTM9mNTZxubKawtQ3918KzxUIhke5uJHh7Ee/tSYK3F/4TkDxvui3WN4pVHhdi9XkZA8ZDeRnBYNKT232Uw+2f0aExp6WWCuUkO69grtt67CWW4etQM9DAl037OdZxCoPJbBJ0k7mw1nsJi93nYCOyvIJ0JpOJnO4aPqvP4EBLAboz7VaK5azxTuRm32SC7TzG5LcmavIpVbfxeW0+22oLaB3qHz3va+vIev9oNvjHEGzvOm6/f7WMtTwq1V18VVPB/toqMlsbz3P4dVfYssQviKX+wcz9/+29d3hc1Z3//55eNF3T1awu2ZK7LUvulrBlO0CALJiQLLAJYdP3wSGB3SUE2PyWEH7Jb79ZEth8KdkEcIAYMLGxcZFc5S7b6rZ6m96bpp7fH2ONPahYskfSyL6v57nPHZ177r3nfnTm3M+c8ylpmeCzks/OIxleTr5gEI16Ay4M6lE/qEP9wCBMHu+IelIeF/M1aiy4upVq1JDxEzsjnAzySCYoeYyEUl4SwFQqL8NESBjNjlOoNf4NuqEuAACDxsRi6XqsVnwVqZzkiGliCziwZ+AQ9gzUIECP2ifwGFxUKleiWrMOKu7MvzhHwxZw47P+8/i47zQGfNd+xS+QZOGrGctQqS4Fl3HzX5DpHnzCkQhOGnvwSU8j9vW3whMKxI6VSNW4J6sEWzOKoebPzPLKVMrD6vOipq8LB7rbcaS/O85Ohs1goFybgQ2ZOdiQmZM08WSS8eVECMGA04mLV5WZC4N6NBmMowZVyxCLUKpRY75ahRKNCiUqFQS3kIU5GeUxk1DyGAmlvCSA6VBehiGE4Iq7HrWGv6HH2wIAoIGOEnE51ijvg5aXM6X3nwjBYBC79nwG3lIJ9hoOQzcUXZqhgYblsgXYqt2AImFeUi1jDBMhEZwyt+Pj/tM4amyNuVsLmVxs1i7CfRnLkCtUT/q6Mzn4+EJBHBi8jE+6G3BU3xlzqaUBKFNm4Z7MeajOKIKYPX32VNMlD384hFOD/TjY04GDvR3odznjjudJZFifmYP1mTlYpk6bMe+l2fJy8odCaDWacVGnx0WdDg06AzqtthH1aAByZDKUaJQovZqsslipmLB302yRx3RByWMklPKSAKZTebmebk8Ljhh3os11LlaWL1iINcr7kZ1y42ByU8X1nYrBZOCivRm7dYdw0d4Sq5OdkoEtmvVYKV+aFBmtR8M85MSugXP4tO8MdEP2WHmpJBP3pS9DlaZ0wrYxyTL4WIY82Nvfil09TThr7ouVs+h0rFXn4itZ81CpzQefObVLKzMhD0II2u0WHOzpxKHeTpzTD8TFRhGy2ViZloX1mTlYl5ENVcr0hd9Plv5xMziHhnBJZ0CD/uqmM4xqDEyn0ZAjk6JErcI8lRLz1EoUKxUQckbaxc1meUwFlDxGQikvCWCmlJdh9L5uHDF9jEv24yCIzhSk8/KxRnkfikXLpj1q71idqs87iN26GhwxnUIwEp3KF7OEuEu1GhvVayBlz0wAuRsRJhGcNrfjk/4zOGJsic3GpDA5qNYsxL3pS1F0A0+lZBx8+j12/L23Gbt6mtDmuGa4zGeyUKUtwNbMuVitzpkSj6VkkIfDP4Qjfd2o6evE4d6uOO8lIGr0uz4jB2sy5mCJSjulszLJII9EYvZ40KA3oFFvRIPegCa9AQa3Z9S6c6QSzFVFFZm5SgWKVQpIOZzbSh63yu3WPxIBpbwkgOGHN5gGoJRrZ6wdVr8eR82f4ry1BiEStXGQs7VYpbgXC6VrwaJPj6HijTqVM+jGQcMx7NUfjmW0ZtAYqEhdgs2adcgXZk9LO28Gs9+F3QPn8UnfmTjbmAKhBvemL8Um7UKIRokbM5EvWjASmrE0Bm12Iz7rbcLfe5vR57HHyoUsDjamFeIrmXNRrpoDVoIydyfbYBwhBA0mPWp6u1DT14lLRj2uH6QELDbK0zKxNmMO1qbPSbitTLLJYyowuT1oNBjQpDeiyRDdBp0jZ2gAQM7nQ0YjWFVchHlXl5yyZdLbJijhZLkT+sdkoZSXBDD88H++WIWlmf+EPNF9YNJnzrvGHbSjzrIHJy2fYygc/bUjYEpQId+K5bJN4DGndjp8op0qFAnjlLUen+tq0ObqjJXnCrKwWb0eFfLFSbukFCERnLV0Ylf/WdQYmmKeShw6E+tU83BP+lIskWXHEm7eSCY9HjP+2H4AoUgE61XzsEm7YFqfZxhCCC5aB/FZTxP29LXAOHTNY0nK5mFTehG2ZBajTJF1S6Hmk30wtvi8ONLXjSP93TjSN3JWJlssxZr0OVidPgflaRlIuUUPpmSXx1Rh9frQZDCi2WBEq9GEZoMJnVYrRntBsBgM5KXKUKSUo1AuR6FSgSKFHPIUflLazyWSO7V/jAelvCSA4Yf/4/kl4AsZ4DKkKJI8gnzxA2DR+Te+wBThD/tw1noAx8274AhGw8qz6Vwsk92FCvlXIGErpuS+N9OpOtw9+FxXi+PmswiREIDoklKVahXuUq1BKkcyJW1NBPaAF/sGL+DT/rNod+tj5VqeFHenLcFX0hZDxkwZVyY7e0/B6HfCHw7iuKkNfCYHz5Xcf1PGwYkiHIngrLkPu3ub8Xl/K6z+a26zqZwUVKcXYkvmXCyTZ4AxSUVmNg3GEULQZDbgcF83Dvd14bxhMM5WhkWnY7FKG1VmMuZgXqrytpbHVOMNBNGk0+NvNbVgqTW4bLag1WSGJxAYtb6Ux0OBIhUFcjkKr+7zFamj2tLMVqj+MRJKeUkAww9/tut/0Y+d8ISiGXI5dDEKJA+hUPwg2IyZCyoXigTR4DiOo6ZPYBjqBQDQwcB8ySqsVNwDLS+xyzS30qkcQRcOGo5hn/5IbEmJDjqWpy5EtXot5oryk/ZXFiEELc4B7Oo/i326i/CEouHYaaChLDUP6wYluHvLV8aUyXDkR1fQh3+98D60PCmennsPmAlaqrkVQpEIThl7sLuvGV/0t8EWuDYToeCmYFN6EarTi7BckTmhF/dsHoxdAT9ODPTiaH90ZqbX6Yg7LuFwsTItEyvTsrAqPQuZE1hims3ymAq+LI8IIeh3ONBmNKPNZEaryYzLJjO6bfYR2bWHUQsFyJenIi81NbqXy5CXKoOIm3wxp24E1T9GQikvCeB6g12pTIxu1z402d6GKxj15mDRU5Av/hqKJA+Dy5DOWDuH3ayPGj9Bp6cxVp4rmI9VinuQL1iUEMUgEZ0qFAnjjPUiPtfXosV5JVaewddik3oN1ijKkjLw3TBD4QAO6Zuwq/8sztu6sESajWq9clSZDH8daDQaQpEwmHQG3u8+jne7juLv65+ZieaPSzASRp2hG3v6WvDFQBscgaHYsVROCjamF2BzejHKlGMvLd1Og3G3w4aj/T042t+NusFeuL40Q5AhFMeUmYq0TKTyRs7G3k7ySAQTlcdQMIR2iwWXTWZcNltw2WRBm8kMg9s95jmKFD5yU6PKTG6qDLkyGbJlUqiFgqT9YUT1j5FQyksCGM3bKELC6HUfRJPtHTgCHQAABo2DPNFXUSx9BHxmYiK33iz93nYcN+1Co+MEIlc9lJScDKxU3IOFkjW3lM060V+0Hk8/9uoP46jpNPyR6IuBx+BijaIMm9RrkcFPjgB9Y9HnscDp96D9aP24MhlWXEKRMH587h3wGGz8PwsfBnuGjHgnQiAcxgljF/b2tWL/wGXYr5uRkbJ5qEorQHVGESqU2WBfZ2x5uw7GoUgEF416HBvoxvH+XtQbBxH8Usj9IpkCFWmZWJmWieWadAjZnNtWHjfLrcrDOTSEK2YLrpitaLdYcMVsQbvZOq5Sk8JmIVsmRc5VZSZHJkW2TIo5Uin47Jn9n1D9YySU8pIAxnOVJiSCAc9RNNregdXfDACgg4ls0VbMlXwTQnbGTDQ5hi1gRJ15N85Y9yMQif6CFjAlWJG6GWWp1TeVQ2mqvmiekBe1xpPYp78W+A4A5okKsEm9BstkC5NiiWU0xpLJ9UnCAOCCrRtvth9Cu9uA/7P0MeQLk1sxu55gJIyTxh7s6WvBgYHLcTYyQhYHldp8bEwvxBp1LpgEd8Rg7AkGcFrXj+MDPTjW34tWqynuOINGQ6lCjTJ1Guh9g/ju3V+FaJSZmTuNqRpDXH4/Oi02dFgsaLdY0WGxotNqQ6/NHmfH9GXUQgHmSKXIlkmQJZVijlSCbJkU6WIROMyp/3FBKS8joZSXBDCROC+EEOh9p9Bk/ROMQ+cBRCPjZgoqMVf6j5ByCm54H0egG/2ew8gSVEHASmwGZF/YgzOWL1Bn2Q1nMOoCzKKxsUi6HhXyr0DBnfj9pvqLRghBg6MVe/WHcdZ6CeSqb4KEJcIGVQWqVKuh4CRHzqdhxpNJKBLGGUsH/tpzAn1eC+aK0/FPueuRLVAiQiIxj6XZRCgSwRlTL/b1t2Jff1uc1xKPwcIqVTaUJi9+vOl+pKbMfJLR6cLi86JusBcnBvpwYqAH3U573HEWnY6FSg1WaDOwQpOBxSoteHfgy2q6X9aBcBh9dgc6LFZ0WW3ostrQaY1+tvmGxjyPBkAjEiJTIkGWVIxMiQQZEjEyJWJkSMQQJ8i+hlJeRkIpLwlgskHqTL6LaLK9g0HviViZll+BCtWLYxr2EkLQYP0fNNreBgAouYuwIPV7UPBKE/MQVwmTEBrtJ3DMvAuDvmvuywXCxVgpvxu5gvk3XBeezi+a2W/FAcMxHDQchz0YDf1OAw2LpSXYqF6DBZK5YCTBy380mRBCcEDfgL2DF3DR3oPN2oX4WsYKZAkUsePJugY/GSKE4Ly5P6bIDHivGbgyaXSsUGZhY3ohKrX5M5ZraaYYcDlRN9iL4/09qOm8AnskFHecRadjgVKDFZoMlGnTsUSlTcrEkokmmV7WNp8P3VY7um222L7LZkePzQZPIDjuuSIOBxkSMdLFoqt7MTLEIqRd3SaqmCaTPJIFSnlJADcbYdfmv4wm25/Q5z4EMTsXmzP+PObLyhPU46TxRah4y1Ak2YZz5t+gy/k51PxlWKP5Nei0xE5dEkLQ7WnGMfMutDnPxmY3VNxMVMi/ggWSNWMGvZuJL9qwge8XhiNodLTFyuVsGarUq7BBWTGjEXxHk0mLYwCP1f0ec1Lk+P+WPgYNL2rMfbsoLaNBCEGTTY+9vS3Yefk8DMQfd3yhTIu70gtxV1pBUmS/ni6CwSB2796NktUrcdaow8nBPpzU9UHvibfRYNLpKJGrUKZJR5kmHUvV6RDdRi7Bw8yGlzUhBFavDz12O3psdvTaHei129Fnd6DP7hg1I/eXkfF5SBeLkCaKKjNakRAaUXSvFQkh4XJBo9FmhTymG0p5SQC3mh7AGehFIOKEnFsyZp02+19x0fIHLJT/AAXirwEAAmE3bP42qPhLQEgEtCmaYTD7B1Fn3o3ztpqYXUwKQ4TViq9itfKrI+qP1amcQStErKlfzhnw6bFffwy1pjp4QtEBhEGjY5lsIe5SrUKJuHDal2JGk4k94MEHPXXY1X8WQ5Eg1irn4r6M5SiRjG0H9afOw2hx9KNauwgVioKkNuYdj2F5zF2zAof0ndg/0IZ6y0BcnWyhDHelFaIqrQALZdpJx06ZTYw1M9frdOCkrg8nB/twWteHAXd8RFoagOJUJZZr0rBMnY5lmnQo+Skz8ASJ5XZ4WXsDQfQ5oorMgMOJPocD/Q4n+u0O9DmcY8atuR4eiwmNUAiVQICQw4ZlxcXQisVQCwVQCQVQCwUxBedOg1JeEsBU5zYKkyAGPceg856GwXcWPKYci1J/hFRuccLvNR6+sAdnrftx0rwH9qAZK+V3Y4v28RH1hjvVps2bwGVzMRT24JL9GA4bdwIgeGTOswmPLTMa/nAAJy312G84EhfBV8WRo1K1CuuUK6ZtNuZGX7Szlg7s6DmBo8ZW/KBwE7ZlVYxIFUAIwQNH/1/0e6M2SUImF5XqUlRrF2ChdM6sso0ZTR5GnwsHBq7gwOBl1Bm6EYiEY/VlHD42aPNQqS3AKnX2lCeOnG4mOhD3uxw4pevHaV0/Tg32jbCZAYA5IgmWqNOwTJ2Gpeo05Epks+7ldjsoL+NBCIHT78eAw4kBhxP9DicGnS4MOof3Lli8N565AQAOkwGlQABlSgqUghSoBAIoBNHPipQUKAQpkKfwIeXxQJ9l/WA8ZkJ5mZ0/FWcQBo2FDMF6pKWsxlDYitPGl9Hu/HjalRceIwWrFV9FhfxuNDtOIZ2fN259Bo2BHk8LPh14AzkpJeAxBBAwxZiurw+HwcZaZRnWKsvQ4xnAfsNRHDGdgsFvxnu9n+CvfbuwVDoflapVmC8pnlHbmKWpuViamgsAMPjso+Y4otFoeHnhI/h8sB5f6C7B5Hfik/4z+KT/DFRcMTZqFmCTZgHyhepZ97ICACVPiK/nLcbX8xbDFfTjiK4D+wcuo1bXDqvfi4+6LuGjrktg0xmoUM1BpTYf67X50NxBdjLpQjHShWI8UDAPAGD0uHFaH1VmzugH0GoxodtpR7fTjr9dbgIASLk8LFFpsUStxVJVGkoVKnCZt59CMJug0WgQc7kQc7mYq1KOWmcoGILe5YLO5UK/3YEjZ89BpNXC4PbC4HZD73LD5vPBHwrHlqrGg0mnI5XPQ2pKCuR8PuQp0S2Vz0dqCh8yHi+2l/F50+JFNdugZl5ukQHPMRzRPY2tmX+FiJ055febLMFgEH/b/z5YJU7YggYslq5HtqAE7/e8igLhYlSpt81Y2/zhAOos53DAcCxuNkbOlmGDqgIblBVI5SQ+kGCif0mGSQTnrV3YO3gBhwyNsWi+AJAjUGKTZiE2aRZAy5+5oIjjMRl5BCNhnDH14eDAZRwcvBKXOBIA5kpU2KDNR6U2HyUyzaz8dZmo/uHwD6HeoMNZ/QDO6Ptx0aTHUGikEXCJXIXFVxWaxSot1Enm8XW7z7xMlrHk4Q+FYHR7YHS7r+49MFz9bHJ7YPJ4YPJ4YfP5xrn66KSw2ZDxuJDyeZDyopuEx4WEy4WEx4OUF1W+JDwuRFwOxFwuhBzOtH3/qJmXJMfoq0cqtwQMGgsREgKdxgSdxgKHIQZB6MYXmAF6vK1oVe/DRu4j2Kx9FHymEDWGD0Gn0ZEtiP5inCmjVA6DjXXKcqxTlqPPO4gDhmM4bDoFc8CKD/r+jg/7dmOhZB4qVSuxRFqatHFjGDQ6lqXmYllqLn469x4cN7Vhn+4ijhlb0ek24g9XvsAfrnyBUkkmNmrmo1JdCjknuV5QE4V1daalQjUH/77oLlxxmmOKzAXLAJrtBjTbDfjv5mOQc1OwXpOH9do8rFRlQ8C6/YxZx0PM4WJdZjbWZUaXZQPhMJrMRpwzDOCcfgBnDYMweT2oN+pQb9ThzYZzAIA0gRCLVFosUmqxSKXBPLkSHAY1VCc7HCYTGVfdsscjEA7D7PHC4vHA7PXC7PFe/dsLs9cLq9cLi9cHq9cLq9eHMCHwBALwBALoczgn3B4aACGHAxGXAyGHc91nNoQcDgRsNgQcNgRsNlJiGyv2mc9iIYXNAo/FSsoM4tQ3YoIEwm7Um/8b81OfgIa/IuZR1O74BDJOMWhJKMowCaHL04ggwwdrQI/I1WzLXZ4maLjZ0PJyACApljUy+Fo8nv0gHsm6D6cs9ThoOI4m52XU2xtRb2+EmCXEGkUZKpUrkcafuQSJN4LDYGGDugQb1CVwBX2oMTRhn+4izlo60WDvRYO9F79t2Y0lqTnYqFmAdcq5ELNnZyA0Go2GArECBWIFvjt3JcxDHtTq2lEz2I6j+k6Yhzz4sOsiPuy6CBadjmWKTKzX5GGdJg/Zwtln+3GrsBkMLFJpsEilwbfnLwUhBP0uB87qB3HOMIDzBh1arSYMuF0YcLfh7x1RTz0WnY65cmVUmVFqsECpRpZIcsfJ73aBzWDEPJhuRIQQOIf8sPt8sHp9sPp8sF3d7L6h6DY0BJvPB4dvCI4hP5z+IfiCIRAATr8fTr//hve5ESw6HTwW6+rGBJfJBJfFApfJBI/FBItOh9lgxIkvDoHHZoHDYILNZIBFp1/dM8BiMMBi0MGkRzcWnQEmgw4GnQ4GjQYGnQ6/Z+yoy1+GWjaaIKGIDw3WP+KK42MoePORypkHnfcUHIEOLFE8hVzRPSPO6XMfhjalHAzazBk0uoec+PDoOwhmG9DnvYxUjhoEwGbNoygSLU1qV+BBnwGHDCdQazoJR/DaL45CYQ42KFeiXL74pnIqzcQ0uGnIiQP6BuzXXUKjoy9WzqQxUCbPw0bNfKxWFkPAnP4cUVMhD384hDOmXtQMtqNG144ety3ueGaKBGs1eVinzcUKRVZS2X3M5DKJJxjARaMe5w2DuGDUod4wCMvQyGUGCYeLBUo1Fig0WKhUY75SDTlvajybqGWjeGaDPPyhEFx+PxxDfrj8fjiH9/7o3u0PwB0IXLf3wxMIXp3hCcIbDMAbCI5IpzHVRIaG0PWLf6W8jSaqvEzGtdkfdqDF9hc4gl0QsbKg5C1CWsqqEfVMvkvYP/AEuIxUFIj/Afni+8FhTH9sk+u/aKZQP97tfhmekAMRRPBU4WuQsBXT3qbJEoqEUW9vxEHDcZy3Ncbi3HDoHFTIl2CDsgKFwpwJK2EzPfgMeK04oG/APt1FtLv0sXI2nYkKRQHuUs/HKkUReNPkxTMd8uhyWVAz2I7Dug6cNvXGeS9xGEwsV2RirSYX6zS5mCOY2VmZme4f1zM8O3PeqEO9QYeLRh2aLEYEwuERddMEIixQqjFfEd1KFSoI2be+VJdM8kgG7iR5BMJh+IJBeAPB6D4YhD8Ugi8Ygi8Ugj8Ygi8UhNcfwMXGBuTkFyBECPyhEALhMILhCALhcGwLRSIIhSMIRq59DhOCcCS6H/J4sP8HT97ZNi/hiAPA+MpLJOKD1fMXBEI9CEfcSBU8Bj5n4bjncBhiLJR//4b390fs4DOV8IaMuGR9HU22d5Aj2opC8bZpN+wlV5M9DoU9SGGKsURWCSFTOkJxcYfs+FPXL7FUVomFkrXgMHjT2s6xYNIZWCZbgGWyBbAG7DhsPIkaYx10Q0bUGE+gxngCWp4K6xTlWKMoQypHMtNNHpc0vgyP5qzFozlr0eU2Yr/uEvbrL6HHY0atoRm1hmZwGSysVBSiSl2KlYpCcBmz2x05W5iK7MJU/FNhGTzBAOqM3Tis60CNrh06rxNH9Z04qu/Ef9TvR2aKBKvVOVijycUKZdYdZytzPTQaDRkiCTJEEtybF/VoDITDaLWacPGqrcxFox6ddisG3E4MuJ3Y03k5ei6AbIkM8+UqlChUKJWrME+ugoA9u/sSxfTBZjDAZjBumFohGAxCMtiHLWVLb91g9wdPTqjubau8dFvugVx+DnTa6APfUPAKdPYXEQz1Q8TbhDBc6DJtg5C7Dmmyl8GgS27p/ukpa6DlV6DHfQCt9vdg87fhiuNvuOLYibSUVSgSPwwlb/G0/MKkITqrdNa6HzTQUCxaBs0osV3OWg9g0NeBXQMd2Kv7XyyUrkWZrBpqXtaUt3GiyNgS3Jdeja+mbUKrqwM1xhM4YT6PQZ8B7/V+gvd7P8UCSTHWKcuxTLYA7JvIyE0IQZCEburcyZItUOI7+VV4Iq8SV1z6mCIz6LPhoL4RB/WN4DHYWKkoxAZ1CVbKC6dtRmaqSGGxUZVWgKq0AhBCcMVpxmFdBw7rOnDW3Itejx3vdpzHux3nwaTRsUSejtXqHKxW52CuVD0rPZgSCZvBiM2ufHPeIgCAK+BHg8mAi6aoMtNgMmDA7USn3YpOuxWftLcAuKrQiKWYJ1ehVKHCvFQl5smVkHCT44cKBcVEuW2VFyF385iKCwD0W58Cl1UMtfhp8NjzAQBDgRa4hg4jQgJIhG01ncZEtrAacwSbYPSdQ4v9fQx6j2HAcxQDnqOQcgpRJN6GTOFdYNCm/kW5SvFVGId6R1VcAKAsdTPYdC5OWfbB7B/Aacs+nLbsQxa/GGWp1ZgnXgHmNLzQJwKNRkOxKA/Fojw8nv0g6sznUWuqQ4uzHRfszbhgb0YKg4cK+VKsV5YjTzBnwoqi0W/Gez2fwh3yYqV8KdYqy8CgTa21PY1GQ4FIgwKRBt8r2IgW5wAO6htxQN8Anc+GA/oGHNA3gMtgoUJeiEp1CVYqCsFnzu5ZieuNfp8oWhGblTmq78QRXQd6PXacMvXilKkXrzbUQsbhY5UqG6vUOVilzoaKNzu9thKNkM1BRVomKtKuzepafF40mAxoMOtxyWRAk9mAQbcLnQ4bOh02fNbRGqubJhChRK7CPHlUmZmbqoQ6RZC09nAUFLetzYvR1A+FfPTsy75AA9oNW8BnLwFAR4R4oBI/DRGvCuGIHXRaCmhTpEw4At1os/8VXa7dCF/NJcNjyFEg/gfkie9LuF3MzazPEkLQ6WnEacteNDtOIXJ12SmFIcISWRWWpd4FGVuV0HYmCp3PiMOmk6g1noQlcM1INI2nxlrFCqxRlEFETxlXJn3eQeh8RnR6+nDGehHBSBBP5j6CeeIbZxtPNISQmCJzUN+AQd+1Z+LQmShXFGCDqgSrlEU3beybzGv43S5rbEnppLEHnlB8GPcCsQIrVdlYqcpGmTIzIdF+k1ket4rZ50GT2YhGkwENZgOazEb0uUYPqCbj8jA3VYlCaSr8fQPYtr4KBXIl2EnoNjud3M7942ah0gMkgIkY7LYb7kEg1AGV6GnwOYvh9B2C238U6dJfg8PKmZZ2+sMOtDs+xmXHh/CFzQAABo2DOcJqFIq3QcJJTDtutVM5g1actR7AGesXcAajofBpoCFPuBDLZZtQKFoy5bMSN0OERNDoaEOt6SROWeoRiEQzztJAwwNpm8G9EJmQTPzhAP7U/REMQ2b8tOifwZlB2xNCCFqdgziob8BBfSMGfNbYMRaNgTJ5Pjao5mGVshiSSbhfz5bBOBAO44JlAEcNnTim70SDVYfrBy8WnY7FqemoUGWjQjUH82VaMG8iB9NskUeicPiH0Gwxoskc3ZotRrTbLAiP8mpg0enIk6aiWKZAUaoChTI5imQKKPkpd8wszZ3WPyYCFaRuGgiG9QiGB6AQ/gCpwscAAGxmJqzu/4Vr6NC0KS8chhjzZI+hSPoIet0H0Gp/HzZ/Gzqcn6LD+SnUvOUolDwELb9iypI8TgQRS4YNqgexVvkAWp1ncNqyD+3ui7jiqscVVz1ELBmWSKuwVFYFCTt5Mg/TaXTMlxRjvqQY3uxtqLOcR62xDq2uDmTx0mBA35jnXu8+zmGwkS/MxhnrRQxF/DOqvNBoNBSL01AsTsP3CzbhikuHQ4YmHNQ3oMdjxjFTK46ZWsGg0bFYlo31qnlYq5wLBff2CNnPZjCwXJmJ5cpMbC9dB5vfizpjD47pO3FM34UBryO2xPTbxsMQMNlYrsyMKjPKOSgQK+6YF+xkEHO4KNdmolx7bclpKBTCFZsZzRYTGow6nGi/DCMicAcDaLGY0GIxAVeuXUPK5V1VZOQokMpRKJMjXyq/LbNsUyQHd57yEhoEDSwIuCtjZYQQ8DmLEAgNjHPm1MCgsZAt3Iw5gmqYhi6gzb4D/Z4j0PtOQ+87DQErHYXiB5Ej2goWXTDt7bvWTgbmiVdgnngFLH49zlr345z1IJxBK2qMH6DW+BEKhIuxLPUuFAoXg55EszF8Jg+VqpWoVK2EYcgEEU2AL8ZRXox+M37T9n8xX1KMfMEcvN/z6YwsGY1H1EZGiwKRFk/mVaHTbUSNoRG1hmZcdulwxtKBM5YOvNK8CyXiDKxTzcM61VxkpiSPgnmrSDl8bMkoxpaM4mjWZ48dx/WdOGHoRp2xB/aAD4cG23FosB0AkMpJwQplFipUc1CumoPMFCrQ21hwmUyUKtQoVahxf24R9th82Lx5Mwx+H1qvKi+tVhNarWZ0O2ywDflwcjCacft6tAIhCqRyFEhTkS+L7vOkqUhhzW6jc4qZ545TXmg0LkIRCyLkWuCnoWAjfIEWCEUbZ7BdNCh5i6DkLYI7OIgrjo/Q7twFd7Af58y/wUXL68gV3Y0C8T9AyM6YsXYCQCpHjU2ab6JStQ3NzlM4Y/kCnZ5GtLnOos11FmJWKpZIK7FEVpl0cWRUXAWCweCYxwkhkLElqFStvJqu4CQeyboPi6UlELKmJgjYrUKj0ZArVCFXqMK38yrR77Wg1tCMGkMTGuy9aHT0odHRh/++vBc5AmVUkVHORaFIe9u8vGk0GrIEUmTlLcHX85YgQgiabXqcMHbjhKEbZ0y9sPg92N3XjN19zQAALV+EFco5WKHMQrkyC9qU6Y/DNJug0WjIEIqRIRTjrjnXEsEOhYJot1nRYjXhstWMNqsZl21m6D1uDLpdGHS7UNvXFXetNIEIeVIZ8qWpyJNEFZo8iYzyeqKYMFOmvFitVvzwhz/EZ599BjqdjgceeAD/9V//BYFg7NmDdevW4fDhw3FlTz75JF5//fWEtYvLKoCEfx909l9CJf4J/MF22L07wWZqIRM8lLD73AoClhaL5D9Ciezb6HZ9jjb7B3AGu9Hm+CvaHB9Ay69AgfgfoOGXzeiSEpPOwnzJKsyXrILZP4gzli9w3lYDR9CCQ8YPUGP8EPnCRVgqq0KRaCkYtOTXlWk0Glg0Fjaq12CZbAFeaX0d9qAjaRWX0Ujnp+Ib2avxjezVMA05cdgYjR1zztqJTrcRnW4j3uqogYorxhplMVamFiCM6Y2kOdXQaTSUyDQokWnwnaJy+MMhXLQMos7YjTpjNy5YBjDodWJn9yXs7L4EIBr1t0yZhaWp6XCTwA3uQDEMl8lCiSIaS+Z6HP4htFnNuGKz4IrNjMtWCy7bzDD7vLGYNIf7uuPOkfP4yBHLkCuRIVcqQ45YihyJDOlC8U3ZL1HcvkyZwe7mzZuh0+nwxhtvIBgM4vHHH8eyZcvw3nvvjXnOunXrUFBQgBdffDFWxufzb2i4cz0TMdgNR5wwOF6B03cQbGYmeOwSyFIeGWHvQkgIg7bnIE35GvicJRNuQ6IhJAKd9zTaHDug89bFyoWsTBSIvzbuktJ0G5eFIkE0OU7irHU/Oj2NsXIBU4LF0g1YKqtEKkcz5e0Yj9FkQgjBKWs9lssWgn6dQviH9j8jTMJ4MvcRsJLETfxmcQZ9OGZsRa2xCSfNVzAUvjYDxSEMrFHPxTr1PJTLCyBgTX+agunEGwrgnLkfdYZunDL2oMGmG2Ggms4XY4UqC8sVWViuyER6ivi2mamaDIkeQ6w+L9rtVrTbLLhss6DDbkG7zQqdxzXmOWw6A5kiMXIksugmlmKOWIpssRRyHn9a/y+Uwe5IbhuD3ZaWFuzduxdnzpzB0qVLAQC/+93vsGXLFrz66qvQarVjnsvn86FWT23iPQZdBK30P6CRvIBwxAEmQzZqPadvL6yeP8Pq+TP47GWQC5+EiHcXaNNsz0Gj0aFNWQFtygo4A7244vgIna6/wxXsjS0pZYu2oED8NYjZo8dwmS6YdBYWSFdjgXQ1zP5BnLMexDnbIbhDdhwx7cQR007kpJRgqawKc8UrwKInx9q3yW/FZ4MH4Q0NoVy+GEwaE73eAeiGjEhlS0dVXHQ+I5RcORgzOPs1GUQsHrakLcKWtEUYCgdxxtKBw8ZmHDW0wBb0YL+hAfsNDWDSGFgiy8ZqZTFWK4ug4UlnuukJh89kxwLfAYAr6MdZUx9Om3px0tCNRpsO/V4HPuq6hI+6ojMzGr4IZYpMLFNkYrki845MLpkIZDw+lvP4WK5Jjyv3BAPostvQYbdGFZqrAfa6HHb4w6GowmO3jriegMXGHLEUc8QSzBFd3YulyBJJpl2xoZg+pmTm5a233sL27dths12LSREKhcDlcvHhhx/ivvvuG/W8devWoampCYQQqNVq3H333XjuuefA54/t9un3++G/Lmumw+FAZmYmLl++DJlsdKVkovhDXbB534TTtwdA9Fcqn7MG6ZLXbum6iSAY8aLPcwCd7s/gCvbGyhdKf4hs4Veu1QsGUVNTg/Xr18/Yr4QwCaHdfREX7LXo9DYCVx1cuQwBvpv9CriM6c2qPJpMApEgjjvO4oDtOAKRIDK5aTAETEhh8PGgcityefEpHUKRMH7S8B9IYabgpblPxc3WzDaGAn68d3g3QtlinLK2o89riTterVmApwq3zlDrpp9gMIjPDx2ApLQAF+06nLcMoNluQJjEL63JOHz87+qHoebf3oHyZnoMiRACnduNHpcNPU47ep0O9Ljs6HE4oPO4MN4LjMdkYb5cidfvGpk492aZaXkkI4mSicvlQnZ2Nux2O8TiG9igkSngl7/8JSkoKBhRrlAoyO9///sxz3vjjTfI3r17yaVLl8hf/vIXkpaWRu67775x7/X8888TRN+G1EZt1EZt1EZt1DbLt76+vhvqGZNaNnrmmWfwq1/9atw6LS0tk7lkHN/5zndin0tLS6HRaFBZWYmOjg7k5uaOes6zzz6Lp556Kva33W5HVlYWent7b6y53QE4nU5kZGSgr69vUrZDtzOUTOKh5BEPJY94KHnEQ8ljJImSCSEELpdrXNOSYSalvGzfvh2PPfbYuHVycnKgVqthNBrjykOhEKxW66TsWcrKygAA7e3tYyovHA4HnFECIYnFYqpjXYdIJKLk8SUomcRDySMeSh7xUPKIh5LHSBIhk4lOOkxKeVEoFFAobhy3o7y8HHa7HefOncOSJVEvnUOHDiESicQUkolw4cIFAIBGM7PeKRQUFBQUFBTJw5RYGRYXF6O6uhpPPPEETp8+jePHj+MHP/gBtm3bFpsOGhgYQFFREU6fPg0A6OjowEsvvYRz586hu7sbu3btwj/+4z9izZo1mD9//lQ0k4KCgoKCgmIWMmUuEu+++y6KiopQWVmJLVu2YNWqVfif//mf2PFgMIi2tjZ4vV4AAJvNxoEDB7Bx40YUFRVh+/bteOCBB/DZZ59N6r4cDgfPP//8qEtJdyKUPEZCySQeSh7xUPKIh5JHPJQ8RjITMrntskpTUFBQUFBQ3N7M3uAUFBQUFBQUFHcklPJCQUFBQUFBMauglBcKCgoKCgqKWQWlvFBQUFBQUFDMKmal8mK1WvHII49AJBJBIpHgW9/6Ftxu97jnrFu3DjQaLW7753/+57g6vb292Lp1K/h8PpRKJZ5++mmEQqGpfJSEMFl5WK1W/PCHP0RhYSF4PB4yMzPxox/9CA6HI67el+VFo9GwY8eOqX6cSfPaa69hzpw54HK5KCsri7nfj8WHH36IoqIicLlclJaWYs+ePXHHCSH4+c9/Do1GAx6Ph6qqKly5cmUqHyGhTEYef/zjH7F69WpIpVJIpVJUVVWNqP/YY4+N6AfV1dVT/RgJZTIyeeedd0Y8L5cbn2X7Tuojo42dNBoNW7dey3c1m/vIkSNHcPfdd0Or1YJGo+GTTz654Tm1tbVYvHgxOBwO8vLy8M4774yoM9lxKVmYrDx27tyJu+66CwqFAiKRCOXl5di3b19cnV/84hcj+kdRUdGtNfSGCQSSkOrqarJgwQJy8uRJcvToUZKXl0cefvjhcc9Zu3YteeKJJ4hOp4ttDocjdjwUCpGSkhJSVVVF6uvryZ49e4hcLifPPvvsVD/OLTNZeTQ0NJD777+f7Nq1i7S3t5ODBw+S/Px88sADD8TVA0DefvvtOJn5fL6pfpxJsWPHDsJms8lbb71FmpqayBNPPEEkEgkxGAyj1j9+/DhhMBjklVdeIc3NzeTf//3fCYvFIg0NDbE6L7/8MhGLxeSTTz4hFy9eJPfccw/Jzs5OumcfjcnK4+tf/zp57bXXSH19PWlpaSGPPfYYEYvFpL+/P1bn0UcfJdXV1XH9wGq1Ttcj3TKTlcnbb79NRCJR3PPq9fq4OndSH7FYLHGyaGxsJAwGg7z99tuxOrO5j+zZs4f827/9G9m5cycBQD7++ONx63d2dhI+n0+eeuop0tzcTH73u98RBoNB9u7dG6szWRknE5OVx49//GPyq1/9ipw+fZpcvnyZPPvss4TFYpHz58/H6jz//PNk3rx5cf3DZDLdUjtnnfLS3NxMAJAzZ87Eyj7//HNCo9HIwMDAmOetXbuW/PjHPx7z+J49ewidTo8bpP7whz8QkUhE/H5/Qto+FdysPL7MBx98QNhsNgkGg7GyiXTcmWb58uXk+9//fuzvcDhMtFot+c///M9R6z/44INk69atcWVlZWXkySefJIQQEolEiFqtJr/+9a9jx+12O+FwOOT999+fgidILJOVx5cJhUJEKBSSP/3pT7GyRx99lNx7772Jbuq0MVmZvP3220QsFo95vTu9j/z2t78lQqGQuN3uWNls7yPDTGTM++lPf0rmzZsXV/bQQw+RTZs2xf6+VRknCzf7Dpg7dy554YUXYn8///zzZMGCBYlrGCFk1i0b1dXVQSKRYOnSpbGyqqoq0Ol0nDp1atxz3333XcjlcpSUlODZZ5+NBcgbvm5paSlUKlWsbNOmTXA6nWhqakr8gySIW5HH9TgcDohEIjCZ8Rkjvv/970Mul2P58uV46623QJIoLFAgEMC5c+dQVVUVK6PT6aiqqkJdXd2o59TV1cXVB6L/5+H6XV1d0Ov1cXXEYjHKysrGvGaycDPy+DJerxfBYBAymSyuvLa2FkqlEoWFhfjud78Li8WS0LZPFTcrE7fbjaysLGRkZODee++NGwPu9D7y5ptvYtu2bUhJSYkrn619ZLLcaAxJhIxnM5FIBC6Xa8QYcuXKFWi1WuTk5OCRRx5Bb2/vLd1nUrmNkgG9Xg+lUhlXxmQyIZPJoNfrxzzv61//OrKysqDVanHp0iX87Gc/Q1tbG3bu3Bm77vWKC4DY3+Ndd6a5WXlcj9lsxksvvRSX1RsAXnzxRWzYsAF8Ph9ffPEFvve978HtduNHP/pRwtp/K5jNZoTD4VH/b62traOeM9b/eVhWw/vx6iQrNyOPL/Ozn/0MWq02buCtrq7G/fffj+zsbHR0dOBf//VfsXnzZtTV1YHBYCT0GRLNzciksLAQb731FubPnw+Hw4FXX30VFRUVaGpqQnp6+h3dR06fPo3Gxka8+eabceWzuY9MlrHGEKfTCZ/PB5vNdsvfw9nMq6++CrfbjQcffDBWVlZWhnfeeQeFhYXQ6XR44YUXsHr1ajQ2NkIoFN7UfZJGeXnmmWfwq1/9atw6LS0tN33961/MpaWl0Gg0qKysREdHx5gZq2eSqZbHME6nE1u3bsXcuXPxi1/8Iu7Yc889F/u8aNEieDwe/PrXv04a5YUisbz88svYsWMHamtr4wxUt23bFvtcWlqK+fPnIzc3F7W1taisrJyJpk4p5eXlKC8vj/1dUVGB4uJivPHGG3jppZdmsGUzz5tvvonS0lIsX748rvxO6yMUo/Pee+/hhRdewKeffhr3o3rz5s2xz/Pnz0dZWRmysrLwwQcf4Fvf+tZN3StplJft27fjscceG7dOTk4O1Go1jEZjXHkoFILVaoVarZ7w/YazW7e3tyM3NxdqtXqENbjBYACASV03UUyHPFwuF6qrqyEUCvHxxx+DxWKNW7+srAwvvfQS/H5/UuT1kMvlYDAYsf/TMAaDYcxnV6vV49Yf3hsMhrhs5gaDAQsXLkxg6xPPzchjmFdffRUvv/wyDhw4cMNEqDk5OZDL5Whvb0/6F9OtyGQYFouFRYsWob29HcCd20c8Hg927NiBF1988Yb3mU19ZLKMNYaIRCLweDwwGIxb7nOzkR07duDb3/42PvzwwxHLal9GIpGgoKAg9p26GZLG5kWhUKCoqGjcjc1mo7y8HHa7HefOnYude+jQIUQikZhCMhEuXLgAALHBp7y8HA0NDXGKwP79+yESiTB37tzEPOQkmGp5OJ1ObNy4EWw2G7t27RrhCjoaFy5cgFQqTQrFBYgm81yyZAkOHjwYK4tEIjh48GDcL+frKS8vj6sPRP/Pw/Wzs7OhVqvj6jidTpw6dWrMayYLNyMPAHjllVfw0ksvYe/evXG2U2PR398Pi8US9+JOVm5WJtcTDofR0NAQe947sY8A0RADfr8f3/jGN254n9nURybLjcaQRPS52cb777+Pxx9/HO+//36cC/1YuN1udHR03Fr/SKj57zRRXV1NFi1aRE6dOkWOHTtG8vPz41yD+/v7SWFhITl16hQhhJD29nby4osvkrNnz5Kuri7y6aefkpycHLJmzZrYOcOu0hs3biQXLlwge/fuJQqFYta4Sk9GHg6Hg5SVlZHS0lLS3t4e574WCoUIIYTs2rWL/PGPfyQNDQ3kypUr5Pe//z3h8/nk5z//+Yw841js2LGDcDgc8s4775Dm5mbyne98h0gkkpjX2De/+U3yzDPPxOofP36cMJlM8uqrr5KWlhby/PPPj+oqLZFIyKeffkouXbpE7r333lnlBjsZebz88suEzWaTjz76KK4fuFwuQgghLpeL/OQnPyF1dXWkq6uLHDhwgCxevJjk5+eToaGhGXnGyTJZmbzwwgtk3759pKOjg5w7d45s27aNcLlc0tTUFKtzJ/WRYVatWkUeeuihEeWzvY+4XC5SX19P6uvrCQDym9/8htTX15Oenh5CCCHPPPMM+eY3vxmrP+wq/fTTT5OWlhby2muvjeoqPZ6Mk5nJyuPdd98lTCaTvPbaa3FjiN1uj9XZvn07qa2tJV1dXeT48eOkqqqKyOVyYjQab7qds1J5sVgs5OGHHyYCgYCIRCLy+OOPxwZbQgjp6uoiAEhNTQ0hhJDe3l6yZs0aIpPJCIfDIXl5eeTpp5+Oi/NCCCHd3d1k8+bNhMfjEblcTrZv3x7nOpysTFYeNTU1BMCoW1dXFyEk6m69cOFCIhAISEpKClmwYAF5/fXXSTgcnoEnHJ/f/e53JDMzk7DZbLJ8+XJy8uTJ2LG1a9eSRx99NK7+Bx98QAoKCgibzSbz5s0ju3fvjjseiUTIc889R1QqFeFwOKSyspK0tbVNx6MkhMnIIysra9R+8PzzzxNCCPF6vWTjxo1EoVAQFotFsrKyyBNPPDErBuHrmYxM/uVf/iVWV6VSkS1btsTFrCDkzuojhBDS2tpKAJAvvvhixLVmex8ZazwclsGjjz5K1q5dO+KchQsXEjabTXJycuJi3gwznoyTmcnKY+3atePWJyTqSq7RaAibzSZpaWnkoYceIu3t7bfUThohSeT7SkFBQUFBQUFxA5LG5oWCgoKCgoKCYiJQygsFBQUFBQXFrIJSXigoKCgoKChmFZTyQkFBQUFBQTGroJQXCgoKCgoKilkFpbxQUFBQUFBQzCoo5YWCgoKCgoJiVkEpLxQUFBQUFBSzCkp5oaCgoKCgoJhVUMoLBQUFBQUFxayCUl4oKCgoKCgoZhWU8kJBQUFBQUExq/j/Abt81TTBMYqGAAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"A = np.array([[4, 1], [1, 3]])\n",
"b = np.array([5, 6])\n",
"x0 = np.array([0., 0.])\n",
"\n",
"x_true = np.linalg.solve(A, b)\n",
"print('The true answer is ', x_true)\n",
"\n",
"fig = plot_surface(A, b, x0, x_true)\n",
"\n",
"_, iterations = steepest_descent(A, b, x0)\n",
"\n",
"iterations = np.array(iterations)\n",
"\n",
"plt.plot(iterations[:, 0], iterations[:, 1], marker='', linestyle='-')\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "muSh9w9KugY5"
},
"source": [
"The approach results in the final $\\vec{x}^{approx}$ (eg: after 9 iterations) being formed as:\n",
"\n",
"$\\vec{x}^{9} = \\vec{x}^0 + \\alpha^1 \\vec{s}^1 + \\alpha^2 \\vec{s}^2 + \\alpha^3 \\vec{s}^3 ...$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "FIkVK_FmwjSg"
},
"source": [
"Let's consider this for a minute. We are assembling the vector that moves from $\\vec{x}^0$ to $~\\vec{x}^9$, as a series of 9 steps in directions $\\vec{s}^k$ with magnitude $\\alpha^k$.\n",
"\n",
"-> What does this expression remind you of?\n",
"\n",
"This path is inefficient because you end up with zig-zagging where one step *undoes* some of the others which is inefficient.\n",
"\n",
"-> How do we ensure the next step doesn't undo the previous step?"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "gU8ZA8XHCgSt"
},
"source": [
"### Choose the step direction: Conjugate gradient"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "RdZUYVpLDuMj"
},
"source": [
"The problem is that certain steps undo the effect of the previous step(s). We can instead choose successive step directions to *not undo each other*, by requiring the next step be *conjugate* to each other.\n",
"\n",
"This means we must base the $\\vec{s}^{k+1}$ step on the $\\vec{s}^{k}$ step and the gradient descent (which we just saw was $\\vec{r}^k$).\n",
"\n",
"$\\vec{s}^{k+1} = \\vec{r}^{k+1}+\\beta^k \\vec{s}^k$\n",
"\n",
"and require that $\\vec{s}^{k+1}$ and $\\vec{s}^k$ are *conjugate to each other in $A$*:\n",
"\n",
"${\\vec{s}^{k+1}}^T A \\vec{s}^k = 0$\n",
"\n",
"This does not mean that $\\vec{s}^{k+1}$ and $\\vec{s}^k$ are orthogonal; rather vectors $\\vec{s}^{k+1}$ and $A \\vec{s}^k$ (or equivilantly $A \\vec{s}^{k+1}$ and $\\vec{s}^k$) are orthogonal.\n",
"\n",
"We can then solve,\n",
"\n",
"\\begin{align}\n",
"[\\vec{r}^{k+1}+\\beta^k \\vec{s}^k]^T A \\vec{s}^k &= 0\\\\\n",
"\\beta^k &= -\\frac{\\vec{r}^{k+1} A \\vec{s}^k}{{\\vec{s}^k}^T A \\vec{s}^k}\n",
"\\end{align}\n",
"\n",
"and so we find the next step direction,\n",
"\n",
"$s^{k+1} = r^{k+1} -\\frac{r^{k+1} A s^k}{{s^k}^T A s^k} s^k$.\n",
"\n",
"The step length $\\alpha_k$ is determined exactly as before.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9JyZ1mOhbQ5r"
},
"source": [
"Actually, we are going to make the new step direction conjugate to *all* the previous directions, so we have to say:\n",
"\n",
"$\\vec{s}^{k+1} = \\vec{r}^{k+1} - \\sum_{i"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"iterations = np.array(iterations)\n",
"\n",
"fig = plot_surface(A, b, x0, x_true)\n",
"\n",
"# Plot the iterations on a 2D surface\n",
"plt.plot(iterations[:, 0], iterations[:, 1], marker='', linestyle='-')\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "F1_9vGdKFR0F"
},
"source": [
"Let's examine the steps, which we can find as the difference between successive iterations:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "S3i7g5yqC_hb",
"outputId": "0e2c54f7-cc9d-432f-a235-f46ad240d0f7"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1.1380597 1.36567164] [-0.31987788 0.36160109]\n",
"0.1297882196885316\n",
"6.661338147750939e-16\n",
"6.661338147750939e-16\n"
]
}
],
"source": [
"s1 = iterations[1,:]-iterations[0,:]\n",
"s2 = iterations[2,:]-iterations[1,:]\n",
"print(s1,s2)\n",
"print(np.dot(s1,s2)) #not zero\n",
"print(np.dot(s1,A@s2)) #Zero\n",
"print(np.dot(s2,A@s1)) #Zero"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9khrvZ_aFcew"
},
"source": [
"Successive steps are conjugate in $A$ as expected.\n",
"\n",
"Another interesting property is that the residual at each step is orthogonal:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "ih4VnI0DDVCT",
"outputId": "cfe23b0a-8cdd-4bab-d24d-eed9c7872abf"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0\n",
"0.0\n"
]
}
],
"source": [
"r0 = A@iterations[0,:]-b\n",
"r1 = A@iterations[1,:]-b\n",
"r2 = A@iterations[2,:]-b\n",
"\n",
"print(r0.dot(r1))\n",
"print(r1.dot(r2))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "DBlB_72KFrPR"
},
"source": [
"which helps with computational efficiency."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "0pALSfNhGQDw"
},
"source": [
"## Analysis\n",
"\n",
"Beginning at $\\vec{x}^0$, we are tasked with finding $\\vec{x}^{approx}$ through an expansion:\n",
"\n",
"$\\vec{x}^{approx} - \\vec{x}^0 = \\alpha^1 \\vec{s}^1 + \\alpha^2 \\vec{s}^2 + ...$.\n",
"\n",
"but this is simply vector addition using a set of directions. Our algorithms has generated the directions $\\vec{s}^k$ which form a set of *vector bases* for:\n",
"\n",
"$\\vec{x}^{approx} - \\vec{x}^0$\n",
"\n",
"and, at the same time, the corresonding *components*, the $\\alpha^k$."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ruh4beEEesyW"
},
"source": [
"- The method of steepest descent doesn't enforce all vector bases be orthogonal (or conjugate), resulting in frenetic zig-zagging and more bases than necessary.\n",
"\n",
"- The conjugate gradient method enforces conjugacy in the vector bases such that they don't overlap. Vectors are linearly independent from the matrix-vector products of the others. This algorithm relies on $A$ being SPD.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9VHFvqmOueJu"
},
"source": [
">Note that these techniques only ever use $A$ in the context for a matrix-vector product - $A \\vec{x}$. Matrix-vector products are $O(n^2)$ (for dense matricies, better for sparse) but there is also the storage requirement for $A$. If we can find a better way to get the vector $A\\vec{x}$ that doesn't involve (assembling), storing, and multiplying $A$, we can see improvements. This is the basis of **Matrix-free** algorithms."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "itQS14mwgBIU"
},
"source": [
"Note the *space* of the solution vector $x$ is just its dimension $n$, and if CG determins linearly independent vectors, it can only find, at most $n$! Therefore, CG will find the exact solution in $n$ iterations (baring roundoff error) which some may take to imply it is a *direct method*. However, the situation is even better, which qualifies it as an iterative technique! Let's see what happens with a larger system:"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "OgIdK40HFQ5C",
"outputId": "f38663ef-82ca-452f-d35a-0f62ca9f1b14"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"iter 1\trk = [0.0209 0.0075 0.032 0.0783 0.0439 0.0073 0.0369 0.0801]\n",
"iter 2\trk = [-0.8925 -1.2871 -0.2747 1.7474 1.0466 -0.8757 0.0896 1.3888]\n",
"iter 3\trk = [-1.1486 -1.8634 -0.5373 1.7162 1.341 -0.7321 0.404 1.9777]\n",
"iter 4\trk = [-1.2676 -2.5568 -0.1426 1.5324 2.2171 -0.4695 0.4377 1.9871]\n",
"iter 5\trk = [-2.2603 -2.864 0.6716 1.1551 3.1509 -0.1319 0.5006 2.1877]\n",
"iter 6\trk = [-2.9958 -2.8345 0.9681 0.9131 4.1145 -0.3175 1.4379 1.8352]\n",
"iter 7\trk = [-2.9739 -2.8203 1.0523 0.7471 4.2074 -0.5366 1.4883 1.9233]\n",
"iter 8\trk = [-2.9605 -2.7277 0.9849 0.6628 4.3529 -0.6061 1.4368 1.9791]\n",
"iter 9\trk = [-2.9605 -2.7277 0.9849 0.6628 4.3529 -0.6061 1.4368 1.9791]\n",
"Solution: [-2.9605 -2.7277 0.9849 0.6628 4.3529 -0.6061 1.4368 1.9791]\n",
"Info: 0\n"
]
}
],
"source": [
"# prompt: Solve a 10x10 random spd linear system with CG\n",
"\n",
"import numpy as np\n",
"from scipy.sparse.linalg import cg\n",
"\n",
"n = 8\n",
"A_r = np.random.rand(n, n)\n",
"A_rand = A_r @ A_r.T # Ensure A is symmetric positive definite\n",
"b_rand = np.random.rand(n)\n",
"x0_rand = np.zeros(n)\n",
"\n",
"\n",
"class it_counter(object):\n",
" def __init__(self, disp=True):\n",
" self._disp = disp\n",
" self.niter = 0\n",
" def __call__(self, rk=None):\n",
" self.niter += 1\n",
" if self._disp:\n",
" print('iter %3i\\trk = %s' % (self.niter, str(rk)))\n",
"\n",
"np.set_printoptions(precision=4)\n",
"\n",
"solution, info = cg(A_rand, b_rand, x0=x0_rand, atol = 1e-6, rtol = 1e-10, callback = it_counter())\n",
"print(\"Solution:\", solution)\n",
"print(\"Info:\", info)\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "hkNVMAWkMWc5"
},
"source": [
"Note that successive iterations are getting closer and closer. Usually, the estimates converge before $n$ iterations (which is especially useful for large sparse matricies!)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "3lx2eNEmhDNr"
},
"source": [
"###Restart"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "4QqL1pobhBR-"
},
"source": [
"Sometimes, the set of $s^k$ gets too large and round-off error can accumulate. Therefore, some implementation have an integer 'restart' parameter which will trigger a restart of the bases after a set number have been generated."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "HZhamTurP0zA"
},
"source": [
"# Generalized Minimal Residual Method (GMRES)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "opGyjPnMRAmy"
},
"source": [
"Let's finally turn our attention towards the general case of $A$ being a general non-symmetric matrix. Since it is non-symmetric, it can not be a Hessian and there is no quadratic surface associated with it."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "vybBucBtR62p"
},
"source": [
"We can adapt the same basic method of CG:\n",
"- Take the residual of the system, $\\vec{r} = A\\vec{x}-\\vec{b}$ and minimize its Euclidian norm, $||\\vec{r}||$.\n",
"- Beginning with $\\vec{x}^0$, construct a basis for $\\vec{x}^{approx}-\\vec{x}^0$ in $\\vec{s}^k$.\n",
"- Enforce orthogonality with successive $\\vec{s}^{k}$\n",
"- Since each $\\vec{s}^k$ is linearly independent, the method will converge in at most $n$ iterations, but typically converges much sooner.\n",
"- A restart may still be necessary to control memory consumption for large systems.\n",
"\n",
"The major difference is that the conjugacy of $\\vec{s}^k$ is not possible since $A$ is not SPD. Rather, $\\vec{s}^k$ are chosen to be orthogonal which is a more general, but less powerful condition."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "avagTNcmU-t8",
"outputId": "018fb684-ef8e-4872-9bdc-4a95dd118f0c"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0. 0.]\n",
"iter 1\trk = 0.15122563463888616\n",
"iter 2\trk = 7.674967607276873e-17\n",
"[array([0., 0.])]\n"
]
}
],
"source": [
"from scipy.sparse.linalg import gmres\n",
"A = np.array([[4, 1], [1, 3]])\n",
"b = np.array([5, 6])\n",
"x0 = np.array([0., 0.])\n",
"\n",
"\n",
"iterations = [x0]\n",
"print(x0)\n",
"def print_iteration_and_save(xk):\n",
" iterations.append(np.copy(xk))\n",
" print(xk)\n",
"\n",
"solution, info = gmres(A, b, callback=it_counter(), callback_type = 'legacy') #x\n",
"np.linalg.solve(A,b)\n",
"print(iterations)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "GjvU923SqOIN",
"outputId": "69bebbb5-a3ea-4673-a25b-91ac1cde8c94"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"iter 1\trk = 0.6009604017495943\n",
"iter 2\trk = 0.3918500855823959\n",
"iter 3\trk = 0.20243617177538392\n",
"iter 4\trk = 0.15688283627620023\n",
"iter 5\trk = 0.10599045198232475\n",
"iter 6\trk = 0.0398441273250505\n",
"iter 7\trk = 0.022361032564208502\n",
"iter 8\trk = 2.2495773485670963e-15\n",
"Solution: [-2.9605 -2.7277 0.9849 0.6628 4.3529 -0.6061 1.4368 1.9791]\n",
"Info: 0\n"
]
}
],
"source": [
"np.set_printoptions(precision=4)\n",
"\n",
"solution, info = gmres(A_rand, b_rand, x0=x0_rand, atol = 1e-6, rtol = 1e-10, callback = it_counter(), callback_type='legacy')\n",
"print(\"Solution:\", solution)\n",
"print(\"Info:\", info)"
]
}
],
"metadata": {
"colab": {
"authorship_tag": "ABX9TyO0AMsYOkp3HCGHbWyVd0aq",
"include_colab_link": true,
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}